php-fpm的pool

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

给不同的站点分别配置不同的pool

  1. [root@localhost nginx-1.17.8]# ps -ef | grep php
  2. root 63622 1664 0 01:30 pts/0 00:00:00 vim php-fpm.conf
  3. root 63691 1 0 01:47 ? 00:00:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
  4. php-fpm 63692 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  5. php-fpm 63693 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  6. php-fpm 63694 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  7. php-fpm 63695 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  8. php-fpm 63696 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  9. php-fpm 63697 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  10. php-fpm 63698 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  11. php-fpm 63699 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  12. php-fpm 63700 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  13. php-fpm 63701 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  14. php-fpm 63702 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  15. php-fpm 63703 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  16. php-fpm 63704 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  17. php-fpm 63705 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  18. php-fpm 63706 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  19. php-fpm 63707 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  20. php-fpm 63708 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  21. php-fpm 63709 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  22. php-fpm 63710 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  23. php-fpm 63711 63691 0 01:47 ? 00:00:00 php-fpm: pool www
  24. root 72622 69909 0 08:49 pts/1 00:00:00 grep --color=auto php
  25. [root@localhost nginx-1.17.8]# cd /usr/local/php-fpm/
  26. # 添加一个123.com的地址池
  27. [root@localhost etc]# cd /usr/local/php-fpm/etc/
  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. [07-Sep-2021 09:13:42] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
  59. # 重启php
  60. [root@localhost etc]# /etc/init.d/php-fpm restart
  61. Gracefully shutting down php-fpm . done
  62. Starting php-fpm done
  63. # 查看进程(会发现多了一个123.com的地址池)
  64. [root@localhost etc]# ps -aux | grep php
  65. root 63622 0.0 0.5 149628 5168 pts/0 T 01:30 0:00 vim php-fpm.conf
  66. root 72655 0.1 0.5 232152 5240 ? Ss 09:13 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
  67. php-fpm 72656 0.0 0.4 232092 4940 ? S 09:13 0:00 php-fpm: pool www
  68. php-fpm 72657 0.0 0.4 232092 4940 ? S 09:13 0:00 php-fpm: pool www
  69. php-fpm 72658 0.0 0.4 232092 4940 ? S 09:13 0:00 php-fpm: pool www
  70. php-fpm 72659 0.0 0.4 232092 4940 ? S 09:13 0:00 php-fpm: pool www
  71. php-fpm 72660 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  72. php-fpm 72661 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  73. php-fpm 72662 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  74. php-fpm 72663 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  75. php-fpm 72664 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  76. php-fpm 72665 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  77. php-fpm 72666 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  78. php-fpm 72667 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  79. php-fpm 72668 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  80. php-fpm 72669 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool www
  81. php-fpm 72670 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool www
  82. php-fpm 72671 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool www
  83. php-fpm 72672 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool www
  84. php-fpm 72673 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool www
  85. php-fpm 72674 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool www
  86. php-fpm 72675 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool www
  87. php-fpm 72676 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool 123.com
  88. php-fpm 72677 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool 123.com
  89. php-fpm 72678 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool 123.com
  90. php-fpm 72679 0.0 0.4 232092 4944 ? S 09:13 0:00 php-fpm: pool 123.com
  91. php-fpm 72680 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool 123.com
  92. php-fpm 72681 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool 123.com
  93. php-fpm 72682 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool 123.com
  94. php-fpm 72683 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool 123.com
  95. php-fpm 72684 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool 123.com
  96. php-fpm 72685 0.0 0.4 232092 4948 ? S 09:13 0:00 php-fpm: pool 123.com
  97. php-fpm 72686 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  98. php-fpm 72687 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  99. php-fpm 72688 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  100. php-fpm 72689 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  101. php-fpm 72690 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  102. php-fpm 72691 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  103. php-fpm 72692 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  104. php-fpm 72693 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  105. php-fpm 72694 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  106. php-fpm 72695 0.0 0.4 232092 4952 ? S 09:13 0:00 php-fpm: pool 123.com
  107. root 72697 0.0 0.0 112824 984 pts/1 R+ 09:14 0:00 grep --color=auto php
  108. [root@localhost vhost]# cd /usr/local/nginx/conf/vhost/
  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. [root@localhost vhost]# /usr/local/nginx/sbin/nginx -t
  125. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  126. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  127. [root@localhost vhost]# /usr/local/nginx/sbin/nginx -s reload

配置拆分多个pool

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

# 进入配置文件目录
[root@localhost vhost]# cd /usr/local/php-fpm/etc/
[root@localhost etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php.ini
[root@localhost etc]# vim php
php-fpm.conf          php-fpm.conf.default  php.ini    
# 多加一行include
[root@localhost etc]# vim 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
include = etc/php-fpm.d/*.conf
# 创建存放配置文件的目录
[root@localhost etc]# mkdir php-fpm.d
[root@localhost etc]# cd php
php-fpm.conf          php-fpm.conf.default  php-fpm.d/            php.ini               
[root@localhost etc]# cd php-fpm.d/

[root@localhost php-fpm.d]# vim 123.conf
[123.com]
listen = /tmp/123.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

 [root@localhost php-fpm.d]# vim www.conf
[www]
listen = /tmp/php-fcgi.sock
  sten.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
# 检查配置文件
[root@localhost php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm  -t
[07-Sep-2021 09:28:12] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
 # 重启服务
[root@localhost php-fpm.d]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done
# 查看sock文件
[root@localhost php-fpm.d]# ls /tmp/*.sock
/tmp/123.sock  /tmp/mysql.sock  /tmp/php-fcgi.sock
[root@localhost php-fpm.d]# ps -ef | grep php
root      63622   1664  0 01:30 pts/0    00:00:00 vim php-fpm.conf
root      76149      1  0 09:28 ?        00:00:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm   76150  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76151  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76152  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76153  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76154  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76155  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76156  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76157  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76158  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76159  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76160  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76161  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76162  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76163  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76164  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76165  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76166  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76167  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76168  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76169  76149  0 09:28 ?        00:00:00 php-fpm: pool 123.com
php-fpm   76170  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76171  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76172  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76173  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76174  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76175  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76176  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76177  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76178  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76179  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76180  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76181  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76182  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76183  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76184  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76185  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76186  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76187  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76188  76149  0 09:28 ?        00:00:00 php-fpm: pool www
php-fpm   76189  76149  0 09:28 ?        00:00:00 php-fpm: pool www
root      76193  69909  0 09:29 pts/1    00:00:00 grep --color=auto php

php-fpm查看慢执行日志

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

[root@localhost php-fpm.d]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 
[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
  imit_files = 1024
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log

[root@localhost php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[07-Sep-2021 09:36:38] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@localhost php-fpm.d]# /etc/init.d/php-fpm reload
Reload service php-fpm  done
[root@localhost php-fpm.d]# ls /usr/local/php-fpm/var/log/
php-fpm.log  www-slow.log
[root@localhost php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log 
测试
# 编写一个慢执行文件
[root@localhost php-fpm.d]# vim  /data/nginx/test.com/sleep.php
<?php
echo "test slow log";
sleep(2);
echo "done";
?>
# 执行这个脚本时慢了一下
[root@localhost etc]# curl -x127.0.0.1:80 test.com/sleep.php
test slow logdone[root@localhost etc]# cat /usr/local/php-fpm/var/log/www-slow.log 

[07-Sep-2021 09:46:37]  [pool www] pid 76298
script_filename = /data/nginx/test.com/sleep.php
[0x00007fd7c7680288] sleep() /data/nginx/test.com/sleep.php:3

php-fpm定义open_basedir

# 修改配置文件,特意配置为错误路径
# 添加一行配置文件,其中test.com的路径为错误路径
[root@localhost etc]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 
[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
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
php_admin_value[open_basedir]=/data/nginx/wwwtest.com:/tmp/

# 测试发现这些PHP文件都无法访问,就是因为php open_basedir做了限制。
[root@localhost etc]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done
[root@localhost etc]# ls /data/nginx/test.com/
1.js  1.jss  2.jpg  3.php  admin  index.html  sleep.php
[root@localhost etc]# !curl
curl -x127.0.0.1:80 test.com/sleep.php
No input file specified.
[root@localhost etc]# curl -x127.0.0.1:80 test.com/sleep.php -I
HTTP/1.1 404 Not Found
Server: nginx/1.17.8
Date: Tue, 07 Sep 2021 02:19:37 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

[root@localhost etc]# curl -x127.0.0.1:80 test.com/3.php -I
HTTP/1.1 404 Not Found
Server: nginx/1.17.8
Date: Tue, 07 Sep 2021 02:19:50 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

# 然后把配置文件改为正确地址测试
[root@localhost etc]# vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 
[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
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
php_admin_value[open_basedir]=/data/nginx/test.com:/tmp/
# 重启服务
[root@localhost etc]# /etc/init.d/php-fpm restart           
Gracefully shutting down php-fpm . done
Starting php-fpm  done
[root@localhost etc]# curl -x127.0.0.1:80 test.com/3.php -I
HTTP/1.1 200 OK
Server: nginx/1.17.8
Date: Tue, 07 Sep 2021 02:20:26 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

[root@localhost etc]# curl -x127.0.0.1:80 test.com/sleep.php -I
HTTP/1.1 200 OK
Server: nginx/1.17.8
Date: Tue, 07 Sep 2021 02:20:45 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

配置错误日志

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

[root@localhost etc]# vim /usr/local/php-fpm/etc/php.ini
display_errors = Off
log_errors = On
error_log = /usr/local/php-fpm/var/log/php_error.log
;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
error_reporting = E_ALL

# 再次将php的配置文件改错
[root@localhost etc]#  vim /usr/local/php-fpm/etc/php-fpm.d/www.conf
php_admin_value[open_basedir]=/data/nginx/wwwtest.com:/tmp/
# 重启服务
[root@localhost etc]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

## 自己创建一个日志文件并授权
[root@localhost etc]# touch /usr/local/php-fpm/var/log/php_error.log
[root@localhost etc]# chmod 777 /usr/local/php-fpm/var/log/php_error.log 
[root@localhost etc]# curl -x127.0.0.1:80 test.com/3.php -I
HTTP/1.1 404 Not Found
Server: nginx/1.17.8
Date: Tue, 07 Sep 2021 02:32:21 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

[root@localhost etc]# curl -x127.0.0.1:80 test.com/sleep.php -I
HTTP/1.1 404 Not Found
Server: nginx/1.17.8
Date: Tue, 07 Sep 2021 02:32:28 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

# 查看错误日志,显示open_basedir限制生效,目录不能访问
[root@localhost etc]# curl -x127.0.0.1:80 test.com/sleep.php 
No input file specified.
[root@localhost etc]# cat /usr/local/php-fpm/var/log/php_error.log 
[07-Sep-2021 02:32:21 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
[07-Sep-2021 02:32:21 UTC] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[07-Sep-2021 02:32:28 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
[07-Sep-2021 02:32:28 UTC] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[07-Sep-2021 02:32:35 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
[07-Sep-2021 02:32:35 UTC] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
# 再次将配置文件修改回来
[root@localhost etc]#  vim /usr/local/php-fpm/etc/php-fpm.d/www.conf 
[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
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
php_admin_value[open_basedir]=/data/nginx/test.com:/tmp/
# 重启服务
[root@localhost etc]# /etc/init.d/php-fpm restart                        
Gracefully shutting down php-fpm . done
Starting php-fpm  done

# 然后测试发现没有错误日志生成
[root@localhost etc]# curl -x127.0.0.1:80 test.com/sleep.php -I
HTTP/1.1 200 OK
Server: nginx/1.17.8
Date: Tue, 07 Sep 2021 02:34:34 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

[root@localhost etc]# curl -x127.0.0.1:80 test.com/3.php -I
HTTP/1.1 200 OK
Server: nginx/1.17.8
Date: Tue, 07 Sep 2021 02:34:41 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
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的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出。