一、准备工作:
1、升级系统
sudo apt update;sudo apt dist-upgrade -y
2、清理原有安装
apt purge php* mariadb* nginx* http* mysql* -y
二、服务器LNMP编译安装
1、安装编译工具
apt install gcc cmake -y
2、安装Nginx
安装依赖
apt install zlib1g-dev libpcre3-dev libssl-dev -y
建立组和用户并设置不能ssh登录
useradd -U -r -M -s /bin/false www
下载
mkdir -p /data/source cd /data/source wget http://nginx.org/download/nginx-1.19.6.tar.gz
解压
tar xvf nginx-1.19.6.tar.gz
编译
cd nginx-1.19.6 ./configure --prefix=/data/nginx --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-stream_realip_module --with-openssl=/data/openssl-1.0.2l --with-http_stub_status_module make -j5 make install
配置启动
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 mkdir /data/nginx/conf/conf.d cat > /data/nginx/conf/nginx.conf << "EOF" user www; worker_processes 4; events { worker_connections 1024; use epoll; } 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
安装依赖
apt install libgd-dev libxml2-dev libcurl4-gnutls-dev -y
下载
cd /data/source wget http://www.php.net/distributions/php-8.0.1.tar.xz
解压
tar xvf php-8.0.1.tar.xz
编译
cd php-8.0.1 ./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 --enable-mbstring --with-gettext --with-curl --enable-mysqlnd --with-mysqli --with-pdo-mysql --disable-phpdbg --with-zlib --enable-calendar --enable-exif --enable-ftp --enable-soap --enable-bcmath --enable-sockets --with-openssl --enable-pcntl --with-zip --enable-gd --with-webp --with-jpeg --with-xpm --with-freetype make -j5 make install ln -sf /data/php/bin/* /usr/local/bin/ ln -sf /data/php/sbin/* /usr/local/bin/ cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm cp sapi/fpm/www.conf /data/php/etc/php-fpm.d/ cp sapi/fpm/php-fpm.conf /data/php/etc/ cp php.ini-production /data/php/php.ini sed -i "s/;zend_extension=opcache/zend_extension=opcache/" /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/;opcache.huge_code_pages=1/opcache.huge_code_pages=1/" /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/;date.timezone =/date.timezone = Asia\/Shanghai/" /data/php/php.ini sed -i "s/;pcre.jit=1/pcre.jit=0/" /data/php/php.ini pear update-channels pear.php.net pear upgrade-all #php8增加jit参数 echo "opcache.jit=1235" >> /data/php/php.ini echo "opcache.jit_buffer_size=64M" >> /data/php/php.ini
4、安装MariaDB/Mysql数据库
创建mysql用户
useradd -U -r -M -s /bin/false mysql
安装依赖
apt install libncurses5-dev libreadline-dev -y
下载
wget http://mirrors.ustc.edu.cn/mariadb//mariadb-10.5.8/source/mariadb-10.5.8.tar.gz
解压
tar xvf mariadb-10.5.8.tar.gz
编译
cd mariadb-10.5.8 cmake . \ -DCMAKE_INSTALL_PREFIX=/data/mariadb \ -DMYSQL_DATADIR=/data/mariadb/data \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -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 cp support-files/mysql.server /etc/init.d/mariadb cd /data/mariadb scripts/mysql_install_db --user=mysql --defaults-file=/data/mariadb/my.cnf --datadir=/data/mariadb/data/ /etc/init.d/mariadb start /data/mariadb/bin/mysqladmin -u root password 'password' #更新或重新编译后: rm -rf /data/mariadb/data/test /etc/init.d/mariadb restart
版权所有 © 2016-2021 清风的个人笔记