返回首页

网站LNMP环境安装配置笔记(开发机环境配置)

注:系统为openSUSE Tumbleweed

一、准备工作:

1、升级系统

zypper dup

2、清理原有安装

zypper rm remove php* mariadb* nginx* http* mysql*

二、测试服务器LNMP编译安装

1、安装编译工具

zypper in gcc make cmake gcc-c++

2、安装Nginx

zypper in pcre-devel openssl-devel

建立组和用户并设置不能ssh登录

useradd -U -r -M -s /bin/false www

下载

mkdir -p /data/source
cd /data/source
wget http://nginx.org/download/nginx-1.17.6.tar.gz

解压

tar xvf nginx-1.17.6.tar.gz

编译

cd nginx-1.17.6
./configure --prefix=/data/nginx --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-stream_realip_module --with-http_stub_status_module
make -j5
make install

配置启动

cat > /usr/lib/systemd/system/nginx.service << "EOF"
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/data/nginx/sbin/nginx -t -c /data/nginx/conf/nginx.conf
ExecStart=/data/nginx/sbin/nginx -c /data/nginx/conf/nginx.conf
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -QUIT $MAINPID

[Install]
WantedBy=multi-user.target
EOF

sed -i "s/\/\$nginx_version//" /data/nginx/conf/fastcgi*
sed -i "s/}/    application\/vnd.android.package-archive apk;\n}/g" /data/nginx/conf/mime.types
mv /data/nginx/conf/nginx.conf /data/nginx/conf/nginx.conf.bak
mkdir /data/nginx/conf/conf.d

cat > /data/nginx/conf/nginx.conf << "EOF"
user  www;
worker_processes  4;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    charset  utf-8;
    sendfile        on;
    client_max_body_size 40m;
    server_tokens off;
    keepalive_timeout  65;
    gzip  on;
    include  conf.d/*.conf;
}
EOF
cat > /data/nginx/conf/conf.d/www.conf << "EOF"
server {
    listen       80;
    server_name  localhost;
    root   /data/www;
    index  index.html index.htm index.php;

    error_page  404              /404.html;
    error_page   500 502 503 504  /50x.html;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri = 404;
        fastcgi_pass   127.0.0.1:9000;
        include        fastcgi.conf;
    }
}
EOF
mkdir /data/www
ln -sf /data/nginx/sbin/nginx /usr/local/bin/

3、安装PHP

安装依赖

zypper in systemd-devel gd-devel libxml2-devel libcurl-devel libXpm-devel freetype2-devel

下载

cd /data/source
wget http://www.php.net/distributions/php-7.3.12.tar.xz

解压

tar xvf php-7.3.12.tar.xz

编译

cd php-7.3.12
./configure --prefix=/data/php --enable-fpm --with-fpm-systemd --with-pear --with-fpm-user=www --with-fpm-group=www --with-config-file-path=/data/php --with-config-file-scan-dir=/data/php/lib/php/extensions --enable-opcache --disable-ipv6 --enable-mbstring --with-gettext --with-curl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-phpdbg --with-gd --with-freetype-dir --with-png-dir --with-xpm-dir --with-jpeg-dir --with-zlib --enable-calendar --enable-exif --enable-ftp --enable-zip --enable-soap --enable-bcmath --enable-sockets --with-openssl --enable-pcntl
make -j5
make install
#make时出现:PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
#make install之后,运行以下命令,再次make && make install就可以了
/data/php/bin/pear channel-update
ln -sf /data/php/bin/* /usr/local/bin/
ln -sf /data/php/sbin/* /usr/local/bin/
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
sed -i "s/\${prefix}/\/data\/php/" /usr/lib/systemd/system/php-fpm.service
sed -i "s/\${exec_prefix}/\/data\/php/" /usr/lib/systemd/system/php-fpm.service
sed -i "s/\/data\/php\/var\/run/\/run/" /usr/lib/systemd/system/php-fpm.service
cp sapi/fpm/www.conf /data/php/etc/php-fpm.d/
cp sapi/fpm/php-fpm.conf /data/php/etc/
echo "zend_extension=opcache.so" > /data/php/lib/php/extensions/opcache.ini
cp php.ini-production /data/php/php.ini
sed -i "s/;opcache.enable=0/opcache.enable=1/" /data/php/php.ini
sed -i "s/;opcache.enable=1/opcache.enable=1/" /data/php/php.ini
sed -i "s/;opcache.enable_cli=0/opcache.enable_cli=1/" /data/php/php.ini
sed -i "s/;opcache.file_cache=/opcache.file_cache=\/tmp/" /data/php/php.ini
sed -i "s/max_execution_time = 30/max_execution_time = 60/" /data/php/php.ini
sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 20M/" /data/php/php.ini
sed -i "s/post_max_size = 8M/post_max_size = 20M/" /data/php/php.ini
sed -i "s/display_errors = Off/display_errors = On/" /data/php/php.ini
sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/" /data/php/php.ini
sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/" /data/php/php.ini
sed -i "s/expose_php = On/expose_php = Off/" /data/php/php.ini
sed -i "s/;request_slowlog_timeout = 0/request_slowlog_timeout = 300/g" /data/php/etc/php-fpm.conf

4、安装MariaDB数据库

创建mysql用户

useradd -U -r -M -s /bin/false mysql

安装依赖

zypper in ncurses-devel bison

下载

wget http://mirrors.ustc.edu.cn/mariadb//mariadb-10.4.10/source/mariadb-10.4.10.tar.gz

解压

tar xvf mariadb-10.4.10.tar.gz

编译

cd mariadb-10.4.10
cmake . \
-DCMAKE_INSTALL_PREFIX=/data/mariadb \
-DMYSQL_DATADIR=/data/mariadb/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SYSTEMD=yes \
-DINSTALL_SYSTEMD_UNITDIR=/usr/lib/systemd/system \
-DDISABLE_SHARED=NO \
-DPLUGIN_MROONGA=NO \
-DPLUGIN_FEDERATED=NO \
-DPLUGIN_FEDERATEDX=NO \
-DPLUGIN_OQGRAPH=NO \
-DPLUGIN_AUTH_PAM=NO \
-DPLUGIN_AUTH_GSSAPI=NO \
-DAUTH_GSSAPI_PLUGIN_TYPE=OFF \
-DPLUGIN_SEQUENCE=NO \
-DPLUGIN_SPIDER=NO \
-DPLUGIN_FTEXAMPLE=NO \
-DPLUGIN_SPHINX=NO \
-DPLUGIN_DAEMON_EXAMPLE=NO \
-DPLUGIN_CRACKLIB_PASSWORD_CHECK=NO \
-DPLUGIN_CASSANDRA=NO \
-DSUFFIX_INSTALL_DIR= \
-DWITH_SSL=system \
-DENABLE_DTRACE=no \
-DWITH_JEMALLOC=no \
-DPLUGIN_EXAMPLE=NO \
-DPLUGIN_EXAMPLE_KEY_MANAGEMENT=NO \
-DPLUGIN_CONNECT=NO \
-DPLUGIN_TOKUDB=NO \
-DPLUGIN_ROCKSDB=NO \
-DWITH_NUMA=OFF \
-DCONNECT_WITH_MYSQL=1 \
-DCONNECT_WITH_LIBXML2=no \
-DCONNECT_WITH_ODBC=no \
-DCONNECT_WITH_JDBC=no \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_INNODB_LZ4=OFF \
-DWITH_INNODB_LZO=OFF \
-DWITH_INNODB_SNAPPY=OFF \
-DWITH_DEBUG=no \
-DWITH_EMBEDDED_SERVER=no \
-DWITH_PROFILING=no \
-DWITH_MARIABACKUP=OFF \
-DWITH_LIBARCHIVE=OFF \
-DWITH_UNIT_TESTS=OFF \
-DINSTALL_MYSQLTESTDIR=''

make -j5
make install
ln -sf /data/mariadb/bin/* /usr/local/bin/
chown mysql:mysql /data/mariadb/data -R
cp support-files/my-huge.cnf /data/mariadb/my.cnf
sed -i "s/\$MYSQLD_OPTS \$_WSREP_NEW_CLUSTER \$_WSREP_START_POSITION/--defaults-file=\/data\/mariadb\/my.cnf/" /usr/lib/systemd/system/mariadb.service
cd /data/mariadb
scripts/mysql_install_db --user=mysql --defaults-file=/data/mariadb/my.cnf --datadir=/data/mariadb/data/
systemctl start mariadb
/data/mariadb/bin/mysqladmin -u root password 'password'
#更新或重新编译后:
sed -i "s/\$MYSQLD_OPTS \$_WSREP_NEW_CLUSTER \$_WSREP_START_POSITION/--defaults-file=\/data\/mariadb\/my.cnf/" /usr/lib/systemd/system/mariadb.service
rm -rf /data/mariadb/data/test
systemctl daemon-reload
systemctl restart mariadb

返回首页

版权所有 © 2016-2019 清风的个人笔记