一、.Linux的网络配置

1. 打开VMware 虚拟网络编辑器 选择相应的网络
NAT或host-only
2. 打开Windows对应的虚拟网卡
vmnet1(host-only) 和 vmnet8(NAT)
3. 配置虚拟网络编辑器对应的ip段
192.168.100.0
4. 进入Linux,打开终端,修改配置文件

  1. vim /etc /sysconfig /network-scripts/ifcfg-ens33
  2. **修改内容如下**:
  3. BOOTPROTO=static ###
  4. ONBOOT=yes ###
  5. IPADDR=192.168.100.20 ###
  6. NETMASK="255.255.255.0" # centos7可以不配
  7. GATEWAY=192.168.100.2 ###
  8. DNS1=8.8.8.8 ###
  9. DNS2=114.114.114.114 # 可以不配置

5. 重启网络
systemctl restart network
克隆如果网络启动不了:
查看

  1. systemctl status network,如果是control process exit这个错误,需要关闭网络管理工具
  2. systemctl stop NetworkManager //临时关闭 即时生效
  3. systemctl disable NetworkManager //永久关闭 重启以后才生效,要不然光设置此项没效果

6. 关闭Linux的防火墙

  1. systemctl stop firewalld //临时修改
  2. systemctl disable firewalld //永久修改

7 . 关闭selinux

  1. getenforce //查看
  2. setenforce 0 //临时修改
  3. vim /etc/selinux/config //永久修改
  4. SELINUX=disabled

8 . 修改主机名 为lnmp
一次性修改主机名 : hostnamectl set-hostname lnmp
su – 生效
image.png
image.pngimage.png
//主机网卡的配置与VMware的虚拟主机在同一网段即可
二、

二、安装与配置MySQL

1.安装MySQL

  1. #上传二进制编译包至虚拟机
  2. [root@localhost ~]# cd /usr/local/src/
  3. [root@localhost src]# ls
  4. libmcrypt-2.5.7 nginx-1.17.8.tar.gz
  5. libmcrypt-2.5.7.tar.gz php-5.6.30
  6. mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz php-5.6.30.tar.gz
  7. nginx-1.17.8
  8. #yum安装必要工具组件
  9. [root@localhost src]# yum install -y net-tools vim tree
  10. [root@localhost src]# tar -zxf mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz
  11. # 移动 MySQL的包到新的目录
  12. [root@localhost src]# mv mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql
  13. # 创建MySQL用户,不可登录。启动需要
  14. [root@localhost src]# useradd -s /sbin/nologin mysql
  15. [root@localhost src]# cd /usr/local/mysql/
  16. # 创建存放数据目录;更改权限
  17. [root@localhost mysql]# mkdir -p /data/mysql
  18. [root@localhost mysql]# chown -R mysql:mysql /data/mysql/
  19. [root@localhost mysql]# cd /data/mysql/
  20. [root@localhost mysql]# ls -la
  21. total 2
  22. drwxr-xr-x. 5 mysql mysql 104 Aug 9 18:10 .
  23. drwxr-xr-x. 3 root root 18 Aug 9 18:05 ..
  24. [root@localhost mysql]# cd /usr/local/mysql/
  25. # 需要依赖
  26. [root@localhost mysql]# yum install -y perl-Module-Install
  27. # 初始化,上面有两个ok确定安装成功
  28. [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/

2.配置MySQL

  1. [root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
  2. cp: overwrite ‘/etc/my.cnf’? y
  3. [root@localhost mysql]# vim /etc/my.cnf
  4. basedir = /usr/local/mysql
  5. datadir = /data/mysql
  6. port = 3306
  7. server_id = 29
  8. socket = /tmp/mysql.sock
  9. # 配置启动脚本
  10. [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
  11. [root@localhost mysql]# chmod 777 /etc/init.d/mysqld
  12. [root@localhost mysql]# vim /etc/init.d/mysqld
  13. basedir=/usr/local/mysql
  14. datadir=/data/mysql
  15. [root@localhost mysql]# chkconfig --add mysqld
  16. [root@localhost mysql]# chkconfig mysql on
  17. [root@localhost mysql]# service mysqld start
  18. Starting MySQL. SUCCESS!
  19. [root@localhost mysql]# netstat -ntlp
  20. Active Internet connections (only servers)
  21. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  22. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1462/sshd
  23. tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2605/master
  24. tcp6 0 0 :::3306 :::* LISTEN 7891/mysqld
  25. tcp6 0 0 :::22 :::* LISTEN 1462/sshd
  26. tcp6 0 0 ::1:25 :::* LISTEN 2605/master

三、安装与配置PHP

1.安装PHP

  1. [root@localhost src]# cd /usr/local/src/
  2. #上传二进制编译包至虚拟机
  3. [root@localhost src]# ls
  4. mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz php-5.6.30.tar.gz
  5. # 依赖
  6. [root@localhost src]# yum install -y gcc libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel eplel-release libmcrypt-devel libcurl-devel libjpeg-devel
  7. #解压上传的文件包
  8. [root@localhost src]# tar -zxf php-5.6.30.tar.gz
  9. [root@localhost src]# cd php-5.6.30
  10. #建立PHP用户
  11. [root@localhost php-5.6.30]# useradd -s /sbin/nologin php-fpm
  12. #进行编译
  13. [root@localhost php-5.6.30]# ./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-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 --disable-ipv6 --with-pear --with-curl --with-openssl
  14. # 出现错误的话可能是环境缺少依赖,安装对应的依赖或者安装gcc
  15. #yum install -y libmcrypt-devel
  16. #重新进行编译
  17. [root@localhost php-5.6.30]# ./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-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 --disable-ipv6 --with-pear --with-curl --with-openssl
  18. +--------------------------------------------------------------------+
  19. | License: |
  20. | This software is subject to the PHP License, available in this |
  21. | distribution in the file LICENSE. By continuing this installation |
  22. | process, you are bound by the terms of this license agreement. |
  23. | If you do not agree with the terms of this license, you must abort |
  24. | the installation process at this point. |
  25. +--------------------------------------------------------------------+
  26. Thank you for using PHP.
  27. config.status: creating php5.spec
  28. config.status: creating main/build-defs.h
  29. config.status: creating scripts/phpize
  30. config.status: creating scripts/man1/phpize.1
  31. config.status: creating scripts/php-config
  32. config.status: creating scripts/man1/php-config.1
  33. config.status: creating sapi/cli/php.1
  34. config.status: creating sapi/fpm/php-fpm.conf
  35. config.status: creating sapi/fpm/init.d.php-fpm
  36. config.status: creating sapi/fpm/php-fpm.service
  37. config.status: creating sapi/fpm/php-fpm.8
  38. config.status: creating sapi/fpm/status.html
  39. config.status: creating sapi/cgi/php-cgi.1
  40. config.status: creating ext/phar/phar.1
  41. config.status: creating ext/phar/phar.phar.1
  42. config.status: creating main/php_config.h
  43. config.status: executing default commands
  44. #这样就是编译成功
  45. #接下来进行make编译
  46. [root@localhost php-5.6.30]# make && make install
  47. # 遇到报错
  48. /usr/bin/ld: note: 'SSLv23_client_method@@libssl.so.10' is defined in DSO /lib64/libssl.so.10 so try adding it to the linker command line
  49. /lib64/libssl.so.10: could not read symbols: Invalid operation
  50. collect2: error: ld returned 1 exit status
  51. make: *** [sapi/cli/php] Error 1
  52. # 解决方法 在一百行左右 -lcrypt -lpthread
  53. [root@localhost php-5.6.30]# vim Makefile
  54. # 继续编译 时间比较久
  55. [root@localhost php-5.6.30]# make && make install
  56. #查看刚刚执行的编译是否有错误
  57. [root@localhost php-5.6.30]# echo $?
  58. 0

2.配置PHP

  1. # 复制配置文件
  2. [root@localhost php-5.6.30]# cp php.ini-production /usr/local/php-fpm/etc/php.ini
  3. # 修改配置文件
  4. [root@localhost php-5.6.30]# vim /usr/local/php-fpm/etc/php-fpm.conf
  5. [global]
  6. pid = /usr/local/php-fpm/var/run/php-fpm.pid
  7. error_log = /usr/local/php-fpm/var/log/php-fpm.log
  8. [www]
  9. listen = /tmp/php-fcgi.sock
  10. listen.mode = 666
  11. user = php-fpm
  12. group = php-fpm
  13. pm = dynamic
  14. pm.max_children = 50
  15. pm.start_servers = 20
  16. pm.min_spare_servers = 5
  17. pm.max_spare_servers = 35
  18. pm.max_requests = 500
  19. rlimit_files = 1024
  20. [root@localhost php-5.6.30]# useradd -s /sbin/nologin php-fpm
  21. # 带有successful 表示成功。
  22. [root@localhost php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -t
  23. [09-Aug-2021 21:21:15] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
  24. # 启动php-fpm
  25. #复制文件
  26. [root@localhost php-5.6.30]# cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  27. #更改文件权限
  28. [root@localhost php-5.6.30]# chmod 755 /etc/init.d/php-fpm
  29. #启动PHP
  30. [root@localhost php-5.6.30]# service php-fpm start
  31. Starting php-fpm done
  32. #设置开机自启
  33. [root@localhost php-5.6.30]# chkconfig php-fpm on
  34. #测试
  35. [root@localhost php-5.6.30]# ps aux |grep php-fpm
  36. root 104939 0.0 0.2 127964 4848 ? Ss 21:26 0:00php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
  37. php-fpm 104940 0.0 0.2 127964 4592 ? S 21:26 0:00php-fpm: pool www
  38. php-fpm 104941 0.0 0.2 127964 4592 ? S 21:26 0:00php-fpm: pool www
  39. php-fpm 104942 0.0 0.2 127964 4596 ? S 21:26 0:00php-fpm: pool www
  40. php-fpm 104943 0.0 0.2 127964 4596 ? S 21:26 0:00php-fpm: pool www
  41. php-fpm 104944 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  42. php-fpm 104945 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  43. php-fpm 104946 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  44. php-fpm 104947 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  45. php-fpm 104948 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  46. php-fpm 104949 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  47. php-fpm 104950 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  48. php-fpm 104951 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  49. php-fpm 104952 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  50. php-fpm 104953 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  51. php-fpm 104954 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  52. php-fpm 104955 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  53. php-fpm 104956 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  54. php-fpm 104957 0.0 0.2 127964 4600 ? S 21:26 0:00php-fpm: pool www
  55. php-fpm 104958 0.0 0.2 127964 4604 ? S 21:26 0:00php-fpm: pool www
  56. php-fpm 104959 0.0 0.2 127964 4604 ? S 21:26 0:00php-fpm: pool www
  57. root 104962 0.0 0.0 112820 964 pts/0 S+ 21:26 0:00 grep --color=auto php-fpm


四、安装与配置Nginx

1.安装Nginx

  1. # 上传安装包
  2. [root@localhost ~]# cd /usr/local/src/
  3. [root@localhost src]# ls
  4. mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz php-5.6.30
  5. nginx-1.17.8.tar.gz php-5.6.30.tar.gz
  6. #解压文件包
  7. [root@localhost src]# tar zxf nginx-1.17.8.tar.gz
  8. [root@localhost src]# cd nginx-1.17.8
  9. #进行编译
  10. [root@localhost nginx-1.17.8]# ./configure --prefix=/usr/local/nginx
  11. Configuration summary
  12. + using system PCRE library
  13. + OpenSSL library is not used
  14. + using system zlib library
  15. nginx path prefix: "/usr/local/ngin"
  16. nginx binary file: "/usr/local/ngin/sbin/nginx"
  17. nginx modules path: "/usr/local/ngin/modules"
  18. nginx configuration prefix: "/usr/local/ngin/conf"
  19. nginx configuration file: "/usr/local/ngin/conf/nginx.conf"
  20. nginx pid file: "/usr/local/ngin/logs/nginx.pid"
  21. nginx error log file: "/usr/local/ngin/logs/error.log"
  22. nginx http access log file: "/usr/local/ngin/logs/access.log"
  23. nginx http client request body temporary files: "client_body_temp"
  24. nginx http proxy temporary files: "proxy_temp"
  25. nginx http fastcgi temporary files: "fastcgi_temp"
  26. nginx http uwsgi temporary files: "uwsgi_temp"
  27. nginx http scgi temporary files: "scgi_temp"
  28. [root@localhost nginx-1.17.8]# make && make install
  29. #查看返回值
  30. [root@localhost nginx-1.17.8]# echo $?
  31. 0
  32. # 因为文件比较小,安装速度很快。

2.配置Nginx

  1. #修改配置文件
  2. [root@localhost nginx-1.17.8]# vim /etc/init.d/nginx
  3. #添加以下内容
  4. #!/bin/bash
  5. # chkconfig: - 30 21
  6. # description: http service.
  7. # Source Function Library
  8. . /etc/init.d/functions
  9. # Nginx Settings
  10. NGINX_SBIN="/usr/local/nginx/sbin/nginx"
  11. NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
  12. NGINX_PID="/usr/local/nginx/logs/nginx.pid"
  13. RETVAL=0
  14. prog="Nginx"
  15. start()
  16. {
  17. echo -n $"Starting $prog: "
  18. mkdir -p /dev/shm/nginx_temp
  19. daemon $NGINX_SBIN -c $NGINX_CONF
  20. RETVAL=$?
  21. echo
  22. return $RETVAL
  23. }
  24. stop()
  25. {
  26. echo -n $"Stopping $prog: "
  27. killproc -p $NGINX_PID $NGINX_SBIN -TERM
  28. rm -rf /dev/shm/nginx_temp
  29. RETVAL=$?
  30. echo
  31. return $RETVAL
  32. }
  33. reload()
  34. {
  35. echo -n $"Reloading $prog: "
  36. killproc -p $NGINX_PID $NGINX_SBIN -HUP
  37. RETVAL=$?
  38. echo
  39. return $RETVAL
  40. }
  41. restart()
  42. {
  43. stop
  44. start
  45. }
  46. configtest()
  47. {
  48. $NGINX_SBIN -c $NGINX_CONF -t
  49. return 0
  50. }
  51. case "$1" in
  52. start)
  53. start
  54. ;;
  55. stop)
  56. stop
  57. ;;
  58. reload)
  59. reload
  60. ;;
  61. restart)
  62. restart
  63. ;;
  64. configtest)
  65. configtest
  66. ;;
  67. *)
  68. echo $"Usage: $0 {start|stop|reload|restart|configtest}"
  69. RETVAL=1
  70. esac
  71. exit $RETVAL
  72. #修改文件权限
  73. [root@localhost nginx-1.17.8]# chmod 755 /etc/init.d/nginx
  74. [root@localhost local]# cd /etc/init.d/
  75. [root@localhost init.d]# ls -al
  76. total 56
  77. drwxr-xr-x. 2 root root 104 Sep 3 13:28 .
  78. drwxr-xr-x. 10 root root 4096 Sep 3 12:01 ..
  79. -rw-r--r--. 1 root root 13948 Sep 16 2015 functions
  80. -rwxr-xr-x. 1 root root 10592 Sep 3 11:44 mysql
  81. -rwxr-xr-x. 1 root root 2989 Sep 16 2015 netconsole
  82. -rwxr-xr-x. 1 root root 6630 Sep 16 2015 network
  83. -rwxr-xr-x. 1 root root 942 Sep 3 13:28 nginx
  84. -rwxr-xr-x. 1 root root 2358 Sep 3 12:50 php-fpm
  85. -rw-r--r--. 1 root root 1160 Feb 2 2021 README
  86. #增加指定服务
  87. [root@localhost nginx-1.17.8]# chkconfig --add nginx
  88. #设置开机自启
  89. [root@localhost nginx-1.17.8]# chkconfig nginx on
  90. #清空文件内容
  91. [root@localhost nginx-1.17.8]# > /usr/local/nginx/conf/nginx.conf
  92. #添加如下内容
  93. [root@localhost nginx-1.17.8]# vim /usr/local/nginx/conf/nginx.conf
  94. user nobody nobody;
  95. worker_processes 2;
  96. error_log /usr/local/nginx/logs/nginx_error.log crit;
  97. pid /usr/local/nginx/logs/nginx.pid;
  98. worker_rlimit_nofile 51200;
  99. events
  100. {
  101. use epoll;
  102. worker_connections 6000;
  103. }
  104. http
  105. {
  106. include mime.types;
  107. default_type application/octet-stream;
  108. server_names_hash_bucket_size 3526;
  109. server_names_hash_max_size 4096;
  110. log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
  111. ' $host "$request_uri" $status'
  112. ' "$http_referer" "$http_user_agent"';
  113. sendfile on;
  114. tcp_nopush on;
  115. keepalive_timeout 30;
  116. client_header_timeout 3m;
  117. client_body_timeout 3m;
  118. send_timeout 3m;
  119. connection_pool_size 256;
  120. client_header_buffer_size 1k;
  121. large_client_header_buffers 8 4k;
  122. request_pool_size 4k;
  123. output_buffers 4 32k;
  124. postpone_output 1460;
  125. client_max_body_size 10m;
  126. client_body_buffer_size 256k;
  127. client_body_temp_path /usr/local/nginx/client_body_temp;
  128. proxy_temp_path /usr/local/nginx/proxy_temp;
  129. fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
  130. fastcgi_intercept_errors on;
  131. tcp_nodelay on;
  132. gzip on;
  133. gzip_min_length 1k;
  134. gzip_buffers 4 8k;
  135. gzip_comp_level 5;
  136. gzip_http_version 1.1;
  137. gzip_types text/plain application/x-javascript text/css text/htm
  138. application/xml;
  139. server
  140. {
  141. listen 80;
  142. server_name localhost;
  143. index index.html index.htm index.php;
  144. root /usr/local/nginx/html;
  145. location ~ \.php$
  146. {
  147. include fastcgi_params;
  148. fastcgi_pass unix:/tmp/php-fcgi.sock;
  149. fastcgi_index index.php;
  150. fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
  151. }
  152. }
  153. }
  154. #检查文件是否出错
  155. [root@localhost nginx-1.17.8]# /usr/local/nginx/sbin/nginx -t
  156. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  157. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  158. # 启动服务
  159. [root@localhost nginx-1.17.8]# service nginx start
  160. Starting nginx (via systemctl): [ OK ]
  161. #检查进程
  162. [root@localhost nginx-1.17.8]# ps aux |grep nginx
  163. root 107675 0.0 0.0 20572 636 ? Ss 22:46 0:00nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
  164. nobody 107676 0.0 0.1 22968 3188 ? S 22:46 0:00nginx: worker process
  165. nobody 107677 0.0 0.1 22968 3188 ? S 22:46 0:00nginx: worker process
  166. root 107680 0.0 0.0 112816 968 pts/0 S+ 22:46 0:00 grep --color=auto nginx
  167. #查看端口
  168. [root@localhost nginx-1.17.8]# netstat -ntlp
  169. Active Internet connections (only servers)
  170. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  171. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 107675/nginx: maste
  172. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1462/sshd
  173. tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2605/master
  174. tcp6 0 0 :::3306 :::* LISTEN 7891/mysqld
  175. tcp6 0 0 :::22 :::* LISTEN 1462/sshd
  176. tcp6 0 0 ::1:25 :::* LISTEN 2605/master
  177. #测试文件
  178. [root@localhost nginx-1.17.8]# curl localhost
  179. <!DOCTYPE html>
  180. <html>
  181. <head>
  182. <title>Welcome to nginx!</title>
  183. <style>
  184. body {
  185. width: 35em;
  186. margin: 0 auto;
  187. font-family: Tahoma, Verdana, Arial, sans-serif;
  188. }
  189. </style>
  190. </head>
  191. <body>
  192. <h1>Welcome to nginx!</h1>
  193. <p>If you see this page, the nginx web server is successfully installed and
  194. working. Further configuration is required.</p>
  195. <p>For online documentation and support please refer to
  196. <a href="http://nginx.org/">nginx.org</a>.<br/>
  197. Commercial support is available at
  198. <a href="http://nginx.com/">nginx.com</a>.</p>
  199. <p><em>Thank you for using nginx.</em></p>
  200. </body>
  201. </html>
  202. #测试解析PHP
  203. [root@localhost nginx-1.17.8]# vim /usr/local/nginx/html/1.php
  204. <?php
  205. echo "test php scripts"
  206. ?>
  207. [root@localhost nginx-1.17.8]# curl localhost/1.php
  208. test php scripts[root@lnmp nginx-1.17.8]#
  209. #成功

PHP-fpm
php-fpm的pool
Nginx可以配置多个主机,php-fpm也可以配置多个pool
配置多个pool可以隔离开各个网站,例如一个网站有问题,把PHP资源耗尽了,那其他网站和这个网站使用的是同一个pool 那也会受到影响,所以我们可以给每个站点都配置一个pool。网站报错502一般和PHP有关。
给不同的站点分别配置不同的pool

  1. ## 给两个站点分别配置不同的pool
  2. [root@localhost ~]# ps -ef |grep php
  3. root 1195 1 0 02:15 ? 00:00:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
  4. php-fpm 1209 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  5. php-fpm 1211 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  6. php-fpm 1212 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  7. php-fpm 1213 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  8. php-fpm 1214 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  9. php-fpm 1215 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  10. php-fpm 1216 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  11. php-fpm 1219 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  12. php-fpm 1220 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  13. php-fpm 1221 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  14. php-fpm 1222 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  15. php-fpm 1228 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  16. php-fpm 1229 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  17. php-fpm 1230 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  18. php-fpm 1231 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  19. php-fpm 1232 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  20. php-fpm 1233 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  21. php-fpm 1234 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  22. php-fpm 1235 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  23. php-fpm 1238 1195 0 02:15 ? 00:00:00 php-fpm: pool www
  24. root 2537 2517 0 02:15 pts/0 00:00:00 grep --color=auto php
  25. # 进入配置文件目录
  26. [root@localhost ~]# cd /usr/local/php-fpm/etc/
  27. # 添加一个pool为123.com
  28. [root@localhost etc]# vim php-fpm.conf
  29. [global]
  30. pid = /usr/local/php-fpm/var/run/php-fpm.pid
  31. error_log = /usr/local/php-fpm/var/log/php-fpm.log
  32. [www]
  33. listen = /tmp/php-fcgi.sock
  34. listen.mode = 666
  35. user = php-fpm
  36. group = php-fpm
  37. pm = dynamic
  38. pm.max_children = 50
  39. pm.start_servers = 20
  40. pm.min_spare_servers = 5
  41. pm.max_spare_servers = 35
  42. pm.max_requests = 500
  43. rlimit_files = 1024
  44. [123.com]
  45. listen = /tmp/123.sock
  46. listen.mode = 666
  47. user = php-fpm
  48. group = php-fpm
  49. pm = dynamic
  50. pm.max_children = 50
  51. pm.start_servers = 20
  52. pm.min_spare_servers = 5
  53. pm.max_spare_servers = 35
  54. pm.max_requests = 500
  55. rlimit_files = 1024
  56. # 检查语法
  57. [root@localhost etc]# /usr/local/php-fpm/sbin/php-fpm -t
  58. [19-Aug-2021 07:13:29] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
  59. # 重启
  60. [root@localhost etc]# /etc/init.d/php-fpm restart
  61. Gracefully shutting down php-fpm . done
  62. Starting php-fpm done
  63. # 看到出现了新的pool
  64. [root@localhost etc]# ps -aux |grep php
  65. root 2997 0.4 0.2 231720 4880 ? Ss 07:14 0:00php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
  66. php-fpm 2998 0.0 0.2 231660 4608 ? S 07:14 0:00php-fpm: pool www
  67. php-fpm 2999 0.0 0.2 231660 4608 ? S 07:14 0:00php-fpm: pool www
  68. php-fpm 3000 0.0 0.2 231660 4608 ? S 07:14 0:00php-fpm: pool www
  69. php-fpm 3001 0.0 0.2 231660 4608 ? S 07:14 0:00php-fpm: pool www
  70. php-fpm 3002 0.0 0.2 231660 4612 ? S 07:14 0:00php-fpm: pool www
  71. php-fpm 3003 0.0 0.2 231660 4612 ? S 07:14 0:00php-fpm: pool www
  72. php-fpm 3004 0.0 0.2 231660 4612 ? S 07:14 0:00php-fpm: pool www
  73. php-fpm 3005 0.0 0.2 231660 4612 ? S 07:14 0:00php-fpm: pool www
  74. php-fpm 3006 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  75. php-fpm 3007 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  76. php-fpm 3008 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  77. php-fpm 3009 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  78. php-fpm 3010 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  79. php-fpm 3011 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  80. php-fpm 3012 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  81. php-fpm 3013 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  82. php-fpm 3014 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  83. php-fpm 3015 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  84. php-fpm 3016 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  85. php-fpm 3017 0.0 0.2 231660 4616 ? S 07:14 0:00php-fpm: pool www
  86. php-fpm 3018 0.2 0.2 231660 4612 ? S 07:14 0:00php-fpm: pool 123.com
  87. php-fpm 3019 0.0 0.2 231660 4612 ? S 07:14 0:00php-fpm: pool 123.com
  88. php-fpm 3020 0.0 0.2 231660 4612 ? S 07:14 0:00php-fpm: pool 123.com
  89. php-fpm 3021 0.0 0.2 231660 4612 ? S 07:14 0:00php-fpm: pool 123.com
  90. php-fpm 3022 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  91. php-fpm 3023 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  92. php-fpm 3024 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  93. php-fpm 3025 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  94. php-fpm 3026 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  95. php-fpm 3027 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  96. php-fpm 3028 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  97. php-fpm 3029 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  98. php-fpm 3030 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  99. php-fpm 3031 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  100. php-fpm 3032 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  101. php-fpm 3033 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  102. php-fpm 3034 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  103. php-fpm 3035 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  104. php-fpm 3036 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  105. php-fpm 3037 0.0 0.2 231660 4620 ? S 07:14 0:00php-fpm: pool 123.com
  106. root 3039 0.0 0.0 112820 968 pts/1 S+ 07:14 0:00 grep --color=auto php
  107. [root@localhost etc]# cd /usr/local/nginx/conf/vhost/
  108. #编辑文件
  109. [root@localhost vhost]# vim default.conf
  110. server
  111. {
  112. listen 80 default_server;
  113. server_name aaa.com;
  114. index index.html index.htm index.php;
  115. root /data/nginx/default;
  116. location ~ \.php$ {
  117. include fastcgi_params;
  118. fastcgi_pass unix:/tmp/123.sock;
  119. fastcgi_index index.php;
  120. fastcgi_param SCRIPT_FILENAME /data/nginx/test.com$fastcgi_script_name;
  121. }
  122. }
  123. # fastcgi_pass unix:/tmp/123.sock; 主要就是修改这一行配置文件选择不同的pool。
  124. #检查文件是否出错并重新加载配置文件
  125. [root@localhost vhost]# /usr/local/nginx/sbin/nginx -t
  126. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  127. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  128. [root@localhost vhost]# /usr/local/nginx/sbin/nginx -s reload

配置拆分多个pool
在nginx.conf这个配置文件下有一行配置文件为 include vhost/*.conf; 他的作用为识别指定目录下以conf为结尾的配置文件,让每个站点为一个配置文件。

  1. # 进入配置文件目录
  2. [root@localhost vhost]# cd /usr/local/php-fpm/etc/
  3. # 加入一行include
  4. [root@localhost etc]# vim php-fpm.conf
  5. [global]
  6. pid = /usr/local/php-fpm/var/run/php-fpm.pid
  7. error_log = /usr/local/php-fpm/var/log/php-fpm.log
  8. include = etc/php-fpm.d/*.conf
  9. # 创建存放配置文件的目录
  10. [root@localhost etc]# mkdir php-fpm.d
  11. [root@localhost etc]# cd php-fpm.d/
  12. [root@localhost php-fpm.d]# vim 123.conf
  13. [123.com]
  14. listen = /tmp/123.sock
  15. listen.mode = 666
  16. user = php-fpm
  17. group = php-fpm
  18. pm = dynamic
  19. pm.max_children = 50
  20. pm.start_servers = 20
  21. pm.min_spare_servers = 5
  22. pm.max_spare_servers = 35
  23. pm.max_requests = 500
  24. rlimit_files = 1024
  25. [root@localhost php-fpm.d]# vim www.conf
  26. [www]
  27. listen = /tmp/php-fcgi.sock
  28. listen.mode = 666
  29. user = php-fpm
  30. group = php-fpm
  31. pm = dynamic
  32. pm.max_children = 50
  33. pm.start_servers = 20
  34. pm.min_spare_servers = 5
  35. pm.max_spare_servers = 35
  36. pm.max_requests = 500
  37. rlimit_files = 1024
  38. #检查文件是否出错
  39. [root@localhost php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
  40. [19-Aug-2021 07:40:02] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf
  41. test is successful
  42. # 重启服务
  43. [root@localhost php-fpm.d]# /etc/init.d/php-fpm restart
  44. Gracefully shutting down php-fpm . done
  45. Starting php-fpm done
  46. # 查看一下sock文件
  47. [root@localhost php-fpm.d]# ls /tmp/*.sock
  48. /tmp/123.sock /tmp/mysql.sock /tmp/php-fcgi.sock
  49. #查看PHP进程
  50. [root@localhost php-fpm.d]# ps -ef |grep php
  51. root 3075 1 0 07:40 ? 00:00:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
  52. php-fpm 3076 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  53. php-fpm 3077 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  54. php-fpm 3078 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  55. php-fpm 3079 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  56. php-fpm 3080 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  57. php-fpm 3081 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  58. php-fpm 3082 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  59. php-fpm 3083 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  60. php-fpm 3084 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  61. php-fpm 3085 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  62. php-fpm 3086 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  63. php-fpm 3087 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  64. php-fpm 3088 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  65. php-fpm 3089 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  66. php-fpm 3090 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  67. php-fpm 3091 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  68. php-fpm 3092 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  69. php-fpm 3093 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  70. php-fpm 3094 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  71. php-fpm 3095 3075 0 07:40 ? 00:00:00 php-fpm: pool 123.com
  72. php-fpm 3096 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  73. php-fpm 3097 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  74. php-fpm 3098 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  75. php-fpm 3099 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  76. php-fpm 3100 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  77. php-fpm 3101 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  78. php-fpm 3102 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  79. php-fpm 3103 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  80. php-fpm 3104 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  81. php-fpm 3105 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  82. php-fpm 3106 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  83. php-fpm 3107 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  84. php-fpm 3108 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  85. php-fpm 3109 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  86. php-fpm 3110 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  87. php-fpm 3111 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  88. php-fpm 3112 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  89. php-fpm 3113 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  90. php-fpm 3114 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  91. php-fpm 3115 3075 0 07:40 ? 00:00:00 php-fpm: pool www
  92. root 3118 2900 0 07:40 pts/1 00:00:00 grep --color=auto php

php-fpm查看慢执行日志
通过配置慢执行日志,可以让我们清晰的了解到PHP脚本在哪里执行时间长,可以定位到哪一行。

  1. # 添加两行配置文件
  2. [root@localhost php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
  3. request_slowlog_timeout = 1
  4. slowlog = /usr/local/php-fpm/var/log/www-slow.log
  5. [root@localhost php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
  6. [19-Aug-2021 10:09:00] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf
  7. test is successful
  8. # 重载PHP服务
  9. [root@localhost php-fpm.d]# /etc/init.d/php-fpm reload
  10. Reload service php-fpm done
  11. # 查看日志目录,可以看到我们配置的路径已经多了一个
  12. [root@localhost php-fpm.d]# ls /usr/local/php-fpm/var/log/
  13. php-fpm.log www-slow.log
  14. # 现在的www-slow.log还是一个空文件。只会记录执行时间大于1s的日志
  15. [root@localhost php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log
  16. # 编辑一个慢执行文件
  17. [root@localhost php-fpm.d]# vim /data/nginx/test.com/sleep.php
  18. <?php
  19. echo "test slow log";
  20. sleep(2);
  21. echo "done";
  22. ?>
  23. # 执行这个脚本的时候可以明显看到慢了一下。
  24. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php
  25. test slow logdone[root@lnmp php-fpm.d]#
  26. # 可以看到日志多出一行。说哪个文件,第三行 sellp()问题。
  27. [root@localhost php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log
  28. [19-Aug-2021 10:27:09] [pool www] pid 3243
  29. script_filename = /data/nginx/test.com/sleep.php
  30. [0x00007feda8c3c288] sleep() /data/nginx/test.com/sleep.php:3

php-fpm定义open_basedir

open_basedir目的就是安全,httpd可以针对每个虚拟机设置一个open_basedir
php-fpm同样也可以对不同的pool设置的不同的open_basedir

  1. # 修改配置文件,特意配置为错误路径
  2. # 添加一行配置文件,其中test.com的路径为错误路径
  3. [root@localhost php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
  4. php_admin_value[open_basedir]=/data/nginx/wwwtest.com:/tmp/
  5. #重新启动
  6. [root@localhost php-fpm.d]# /etc/init.d/php-fpm restart
  7. Gracefully shutting down php-fpm . done
  8. Starting php-fpm done
  9. # 测试发现这些PHP文件都无法访问,就是因为php open_basedir做了限制。
  10. [root@localhost php-fpm.d]# ls /data/nginx/test.com/
  11. 1.js 1.jss 2.jpg 2.js 3.php admin index.html sleep.php
  12. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I
  13. HTTP/1.1 404 Not Found
  14. Server: nginx/1.17.8
  15. Date: Thu, 19 Aug 2021 02:51:12 GMT
  16. Content-Type: text/html; charset=UTF-8
  17. Connection: keep-alive
  18. X-Powered-By: PHP/5.6.30
  19. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/3.php -I
  20. HTTP/1.1 404 Not Found
  21. Server: nginx/1.17.8
  22. Date: Thu, 19 Aug 2021 02:51:45 GMT
  23. Content-Type: text/html; charset=UTF-8
  24. Connection: keep-alive
  25. X-Powered-By: PHP/5.6.30
  26. # 把配置文件改为正确的
  27. # 发现可以正常使用
  28. [root@localhost php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
  29. php_admin_value[open_basedir]=/data/nginx/test.com:/tmp/
  30. #重新启动
  31. [root@localhost php-fpm.d]# /etc/init.d/php-fpm restart
  32. Gracefully shutting down php-fpm . done
  33. Starting php-fpm done
  34. #进行测试
  35. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/3.php -I
  36. HTTP/1.1 200 OK
  37. Server: nginx/1.17.8
  38. Date: Thu, 19 Aug 2021 02:57:52 GMT
  39. Content-Type: text/html; charset=UTF-8
  40. Connection: keep-alive
  41. X-Powered-By: PHP/5.6.30
  42. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I
  43. HTTP/1.1 200 OK
  44. Server: nginx/1.17.8
  45. Date: Thu, 19 Aug 2021 02:58:00 GMT
  46. Content-Type: text/html; charset=UTF-8
  47. Connection: keep-alive
  48. X-Powered-By: PHP/5.6.30

配置错误日志
配置记录php执行错误的日志

  1. # 配置
  2. [root@localhost php-fpm.d]# vim /usr/local/php-fpm/etc/php.ini
  3. display_errors = Off
  4. log_errors = On
  5. error_log = /usr/local/php-fpm/var/log/php_error.log
  6. ;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
  7. error_reporting = E_ALL
  8. # 再次将php的配置文件改错
  9. [root@localhost php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
  10. php_admin_value[open_basedir]=/data/nginx/wwwtest.com:/tmp/
  11. # 创建一个日志文件,并授权。
  12. [root@lnmp php-fpm.d]# touch /usr/local/php-fpm/var/log/php_error.log
  13. [root@lnmp php-fpm.d]# chmod 777 /usr/local/php-fpm/var/log/php_error.log
  14. [root@localhost log]# ls -al
  15. total 8
  16. drwxr-xr-x. 2 root root 63 Sep 6 14:44 .
  17. drwxr-xr-x. 4 root root 26 Sep 3 12:39 ..
  18. -rwxrwxrwx 1 root root 0 Sep 6 14:44 php_error.log
  19. -rw-------. 1 root root 3515 Sep 6 14:23 php-fpm.log
  20. -rw------- 1 root root 312 Sep 6 14:23 www-slow.log
  21. # 重启
  22. [root@localhost log]# /etc/init.d/php-fpm restart
  23. Gracefully shutting down php-fpm . done
  24. Starting php-fpm done
  25. # 查看
  26. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/3.php -I
  27. HTTP/1.1 404 Not Found
  28. Server: nginx/1.17.8
  29. Date: Thu, 19 Aug 2021 03:21:22 GMT
  30. Content-Type: text/html; charset=UTF-8
  31. Connection: keep-alive
  32. X-Powered-By: PHP/5.6.30
  33. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I
  34. HTTP/1.1 404 Not Found
  35. Server: nginx/1.17.8
  36. Date: Thu, 19 Aug 2021 03:21:32 GMT
  37. Content-Type: text/html; charset=UTF-8
  38. Connection: keep-alive
  39. X-Powered-By: PHP/5.6.30
  40. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php
  41. No input file specified.
  42. # 查看错误日志,显示open_basedir限制生效,目录不能访问
  43. [root@lnmp php-fpm.d]# cat /usr/local/php-fpm/var/log/php_error.log
  44. [19-Aug-2021 03:21:22 UTC] PHP Warning: Unknown: open_basedir restriction in effect. File(/data/nginx/test.com/3.php) is not within the allowed path(s): (/data/nginx/wwwtest.com:/tmp/) in Unknown on line 0
  45. [19-Aug-2021 03:21:22 UTC] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0
  46. [19-Aug-2021 03:21:32 UTC] PHP Warning: Unknown: open_basedir restriction in effect. File(/data/nginx/test.com/sleep.php) is not within the allowed path(s): (/data/nginx/wwwtest.com:/tmp/) in Unknown on line 0
  47. [19-Aug-2021 03:21:32 UTC] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0
  48. [19-Aug-2021 03:21:45 UTC] PHP Warning: Unknown: open_basedir restriction in effect. File(/data/nginx/test.com/sleep.php) is not within the allowed path(s): (/data/nginx/wwwtest.com:/tmp/) in Unknown on line 0
  49. [19-Aug-2021 03:21:45 UTC] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0
  50. # 再次将配置文件修改回来
  51. [root@vlocalhost php-fpm.d]# cat /usr/local/php-fpm/etc/php-fpm.d/www.conf
  52. [www]
  53. listen = /tmp/php-fcgi.sock
  54. listen.mode = 666
  55. user = php-fpm
  56. group = php-fpm
  57. pm = dynamic
  58. pm.max_children = 50
  59. pm.start_servers = 20
  60. pm.min_spare_servers = 5
  61. pm.max_spare_servers = 35
  62. pm.max_requests = 500
  63. rlimit_files = 1024
  64. request_slowlog_timeout = 1
  65. slowlog = /usr/local/php-fpm/var/log/www-slow.log
  66. php_admin_value[open_basedir]=/data/nginx/test.com:/tmp/
  67. # 重启服务,可以正常使用,也没有产生错误日志。
  68. [root@localhost php-fpm.d]# /etc/init.d/php-fpm restart
  69. Gracefully shutting down php-fpm . done
  70. Starting php-fpm done
  71. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I
  72. HTTP/1.1 200 OK
  73. Server: nginx/1.17.8
  74. Date: Thu, 19 Aug 2021 03:25:43 GMT
  75. Content-Type: text/html; charset=UTF-8
  76. Connection: keep-alive
  77. X-Powered-By: PHP/5.6.30
  78. [root@localhost php-fpm.d]# curl -x127.0.0.1:80 test.com/3.php -I
  79. HTTP/1.1 200 OK
  80. Server: nginx/1.17.8
  81. Date: Thu, 19 Aug 2021 03:25:50 GMT
  82. Content-Type: text/html; charset=UTF-8
  83. Connection: keep-alive
  84. X-Powered-By: PHP/5.6.30

五、php-fpm进程管理

pm = dynamic //动态进程管理,也可以是static 如果是静态的,会直接启动最大子进程数
pm.max_children = 50 //最大子进程数,ps aux可以查看
pm.start_servers = 20 //启动服务时会启动的进程数
pm.min_spare_servers = 5 //定义在空闲时段,子进程数的最少数量,如果达到这个数值时,php-fpm服务会自动派生新的子进程。
pm.max_spare_servers = 35 //定义在空闲时段,子进程数的最大值,如果高于这个数值就开始清理空闲的子进程。
pm.max_requests = 500 //定义一个子进程最多处理的请求数,也就是说在一个php-fpm的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。