以下正式操作前的各个软件版本和系统环境参考这三篇为前提 apache:https://blog.51cto.com/popli3/2357295 PHP:https://blog.51cto.com/popli3/2358720 mysql:https://blog.51cto.com/popli3/2357211

安装Mysql

  1. 清理之前安装的mysql环境

[root@minion-1 mysql]# rm -rf /etc/init.d/mysqld [root@minion-1 mysql]# rm -rf /usr/local/mysql/ [root@minion-1 mysql]# rm -rf /data/mysql/*

  1. 下载并初始化数据库

[root@minion-1 mysql]# tar xf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ [root@minion-1 mysql]# cd /usr/local/ [root@minion-1 local]# ln -sv mysql-5.6.42-linux-glibc2.12-x86_64/ mysql [root@minion-1 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

  1. 复制一些模板文件

[root@minion-1 mysql]# cp support-files/my-default.cnf /etc/my.cnf [root@minion-1 mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@minion-1 mysql]# vi /etc/init.d/mysqld basedir=/usr/local/mysql datadir=/data/mysql

  1. 开启服务

[root@minion-1 mysql]# service mysqld start [root@minion-1 mysql]# netstat -tupln |grep mysql

安装PHP

  1. 清理php之前编译环境

[root@minion-1 ~]# cd php-7.3.2/ [root@minion-1 php-7.3.2]# make clean

  1. 安装环境,我这个环境是在之前装过php,没验证过是否有些组件在之前已经安装了

[root@minion-1 php-7.3.2]# yum -y install libcurl-devel gcc-c++

  1. 可能会几个选项不认,没关系

[root@minion-1 php-7.3.2]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc/ --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl

  1. 编译安装

[root@minion-1 php-7.3.2]# make && make install

  1. 添加环境变量php-fpm

[root@minion-1 php-7.3.2]#vi /etc/profile.d/php-fpm.sh export PATH=/usr/local/php-fpm/sbin:$PATH [root@minion-1 php-7.3.2]# source /etc/profile.d/php-fpm.sh

  1. 复制模板php.ini

[root@minion-1 php-7.3.2]#cp php.ini-production /usr/local/php-fpm/etc/php.ini

  1. 编辑php-fpm.conf

[root@minion-1 php-7.3.2]#vi /usr/local/php-fpm/etc/php-fpm.conf [global] pid=/usr/local/php-fpm/var/run/php-fpm.pid error_log=/usr/local/php-fpm/var/log/php-fpm.log [www] listen=/tmp/php-fcgi.sock listen.mode=666 user=php-fpm group=php-fpm pm=dynamic pm.max_children=50 pm.start_servers=20 pm.min_spare_servers=5 pm.max_spare_servers=35 pm.max_requests=500 rlimit_files=1024

  1. 进入源码php的目录,拷贝模板文件,并设置开机启动

[root@minion-1 ~]# cd ~/php-7.3.2/ [root@minion-1 php-7.3.2]#cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@minion-1 php-7.3.2]#chmod 755 /etc/init.d/php-fpm [root@minion-1 php-7.3.2]#chkconfig --add php-fpm [root@minion-1 php-7.3.2]#chkconfig php-fpm on [root@minion-1 php-7.3.2]#useradd php-fpm [root@minion-1 php-7.3.2]#service php-fpm start

  1. 检查下进程启动是否成功

[root@minion-1 php-7.3.2]# ps -ef |grep php-fpm

安装Nginx

  1. 下载并解压

[root@minion-1 ~]#wget http://nginx.org/download/nginx-1.13.8.tar.gz [root@minion-1 ~]#tar xf nginx-1.13.8.tar.gz

  1. 设置环境并make安装

[root@minion-1 ~]#cd nginx-1.13.8 [root@minion-1 nginx-1.13.8]#./configure --prefix=/usr/local/nginx [root@minion-1 nginx-1.13.8]#make && make install

  1. 设置自己写的nginx启动脚本(chkconfig前的井号不是这样的)

[root@centos7 nginx-1.13.8]# vim /etc/init.d/nginx #!/bin/bash ######## chkconfig: - 30 21 ######## description: http service. ######## Source Function Library . /etc/init.d/functions ############# Nginx Settings NGINX_SBIN="/usr/local/nginx/sbin/nginx" NGINX_CONF="/usr/local/nginx/conf/nginx.conf" NGINX_PID="/usr/local/nginx/logs/nginx.pid" RETVAL=0 prog="Nginx" start() { echo -n $"Starting $prog: " mkdir -p /dev/shm/nginx_temp daemon $NGINX_SBIN -c $NGINX_CONF RETVAL=$? echo return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p $NGINX_PID $NGINX_SBIN -TERM rm -rf /dev/shm/nginx_temp RETVAL=$? echo return $RETVAL } reload() { echo -n $"Reloading $prog: " killproc -p $NGINX_PID $NGINX_SBIN -HUP RETVAL=$? echo return $RETVAL } restart() { stop start } configtest() { $NGINX_SBIN -c $NGINX_CONF -t return 0 } case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; configtest) configtest ;; *) echo $"Usage: $0 {start|stop|reload|restart|configtest}" RETVAL=1 esac exit $RETVAL

  1. 黏贴这段优化过的nginx.conf

[root@minion-1 nginx-1.13.8]# vi /usr/local/nginx/conf/nginx.conf user nobody nobody; worker_processes 2; error_log /usr/local/nginx/logs/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 6000; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 3526; server_names_hash_max_size 4096; log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"'; sendfile on; tcp_nopush on; keepalive_timeout 30; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; connection_pool_size 256; client_header_buffer_size 1k; large_client_header_buffers 8 4k; request_pool_size 4k; output_buffers 4 32k; postpone_output 1460; client_max_body_size 10m; client_body_buffer_size 256k; client_body_temp_path /usr/local/nginx/client_body_temp; proxy_temp_path /usr/local/nginx/proxy_temp; fastcgi_temp_path /usr/local/nginx/fastcgi_temp; fastcgi_intercept_errors on; tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 4 8k; gzip_comp_level 5; gzip_http_version 1.1; gzip_types text/plain application/x-javascript text/css text/htm application/xml; server { listen 80; server_name localhost; index index.html index.htm index.php; root /usr/local/nginx/html; location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; }
} }

  1. 加入启动(注意这边apache必须先关闭)

[root@minion-1 nginx-1.13.8]#chmod 755 /etc/init.d/nginx [root@minion-1 nginx-1.13.8]#chkconfig --add nginx [root@minion-1 nginx-1.13.8]#chkconfig nginx on [root@minion-1 nginx-1.13.8]#/etc/init.d/nginx start

  1. 测试一个php文件

[root@minion-1 nginx-1.13.8]# vi /usr/local/nginx/html/index.php <?php echo "php is ok\n";