当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP-FPM 设置多pool及配置文件重写操作示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-27 14:02:19 浏览: 评论:0 

本文实例讲述了PHP-FPM 设置多pool及配置文件重写操作,分享给大家供大家参考,具体如下:

重写配置文件

1、清空php配置文件

命令:> /usr/local/php/etc/php-fpm.conf

2、重新写入php-fpm配置

命令:vim /usr/local/php/etc/php-fpm.con

配置文件

  1. # 全局配置 
  2. [global
  3. # PID、可以不填 
  4. pid = /usr/local/php/var/run/php-fpm.pid 
  5. # 错误日志路径、可以不填 
  6. error_log = /usr/local/php/var/log/php-fpm.log 
  7. # www虚拟主机配置、可写多个 
  8. # pool命名:www 
  9. [www] 
  10. # 监听socket方式 
  11. # 可以写成listen = 127.0.0.1:9000 
  12. listen = /tmp/php-fcgi.sock 
  13. # 开启php-fpm的执行用户 
  14. user = php-fpm 
  15. # 开启php-fpm的所属组 
  16. group = php-fpm 
  17. # 监听listen的用户,和后面的nginx的一致 
  18. listen.owner = nobody 
  19. # 监听listen的组,和后面的nginx的一致 
  20. listen.group = nobody 
  21. # 怎样的形式启用进程 
  22. pm = dynamic 
  23. # 最大开启子进程数 
  24. pm.max_children = 50 
  25. # 一开始启动多少子进程 
  26. pm.start_servers = 20 
  27. # 空闲时保留多少个子进程 
  28. pm.min_spare_servers = 5 
  29. # 最多空闲子进程 
  30. pm.max_spare_servers = 35 
  31. # 进程处理多少个请求之后销毁重建 
  32. pm.max_requests = 500 
  33. # 限定打开最大的文件数 
  34. rlimit_files = 1024 

3、测试配置文件

# 测试配置文件

/usr/local/php/sbin/php-fpm -t

测试成功:

[30-Jan-2018 23:43:32] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test is successful

4、重启动php-fpm

命令:/etc/init.d/php-fpm start

5、查看启动状况

查看启动进程

  1. ps -aux | grep php-fpm 
  2. root   1530 0.0 0.5 32036 2928 ?    Ss  23:45  0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) 
  3. php-fpm  1531 0.0 0.4 32036 2512 ?    S  23:45  0:00 php-fpm: pool www 
  4. php-fpm  1532 0.0 0.4 32036 2512 ?    S  23:45  0:00 php-fpm: pool www 
  5. php-fpm  1533 0.0 0.4 32036 2512 ?    S  23:45  0:00 php-fpm: pool www 
  6. php-fpm  1534 0.0 0.4 32036 2512 ?    S  23:45  0:00 php-fpm: pool www 

查看监听是否为nobody用户

ls -l /tmp/php-fcgi.sock

srw-rw-rw-. 1 nobody nobody 0 1月 30 23:45 /tmp/php-fcgi.sock

注:权限都需要有读写,nginx才可以访问到socket。

查看nginx是否调用了nobody

  1. ps aux | grep nginx 
  2. root   1606 0.0 0.1  5352  640 ?    Ss  02:46  0:00 nginx: master process /usr/local/nginx/sbin/nginx 
  3. nobody  1607 0.0 0.3  6164 1568 ?    S  02:46  0:00 nginx: worker process 
  4. root   1609 0.0 0.1  5980  744 pts/0  S+  02:46  0:00 grep nginx 

设置多个pool

需求:置两个pool,www1,www2

注:pool对应一个nginx的站点,这样可以提高安全,如同站点切割。

1、主配置文件下配置两个pool。

配置文件

  1. # 全局配置 
  2. [global
  3. # PID、可以不填 
  4. pid = /usr/local/php/var/run/php-fpm.pid 
  5. # 错误日志路径、可以不填 
  6. error_log = /usr/local/php/var/log/php-fpm.log 
  7. # www虚拟主机配置、可写多个 
  8. [www1] 
  9. # 监听socket方式 可以写成127.0.0.1:9000 TCP的。 
  10. listen = /tmp/php-fcgi1.sock 
  11. # 开启php-fpm的执行用户 
  12. user = php-fpm 
  13. # 开启php-fpm的所属组 
  14. group = php-fpm 
  15. # 监听listen的用户,和后面的nginx的一致 
  16. listen.owner = nobody 
  17. # 监听listen的组,和后面的nginx的一致 
  18. listen.group = nobody 
  19. # 怎样的形式启用进程、static static静态、pm dynamic动态 
  20. pm = dynamic 
  21. # 最大开启子进程数 
  22. pm.max_children = 50 
  23. # 一开始启动多少子进程 
  24. pm.start_servers = 20 
  25. # 空闲时保留多少个子进程 
  26. pm.min_spare_servers = 5 
  27. # 最多空闲子进程 
  28. pm.max_spare_servers = 35 
  29. # 进程处理多少个请求之后销毁重建 
  30. pm.max_requests = 500 
  31. # 限定打开最大的文件数 
  32. rlimit_files = 1024 
  33. # 定义慢日志 
  34. slowlog = /tmp/xxx_slow.log 
  35. # 处理延迟多少秒记录一次慢日志 
  36. request_slowlog_timeout = 1 
  37. # 配置隔离网站 
  38. php_admin_value[open_basedir]=/usr/local/url1:/usr/local/url2 
  39. # www虚拟主机配置、可写多个 
  40. [www2] 
  41. # 监听socket方式 可以写成127.0.0.1:9000 TCP的。 
  42. listen = /tmp/php-fcgi2.sock 
  43. # 开启php-fpm的执行用户 
  44. user = test 
  45. # 怎样的形式启用进程、static static静态、pm dynamic动态 
  46. pm = dynamic 
  47. # 最大开启子进程数 
  48. pm.max_children = 50 
  49. # 一开始启动多少子进程 
  50. pm.start_servers = 20 
  51. # 空闲时保留多少个子进程 
  52. pm.min_spare_servers = 5 
  53. # 最多空闲子进程 
  54. pm.max_spare_servers = 35 
  55. # 进程处理多少个请求之后销毁重建 
  56. pm.max_requests = 500 
  57. # 限定打开最大的文件数 
  58. rlimit_files = 1024 
  59. # 定义慢日志 
  60. slowlog = /tmp/xxx2_slow.log 
  61. # 处理延迟多少秒记录一次慢日志 
  62. request_slowlog_timeout = 1 
  63. # 配置隔离网站 
  64. php_admin_value[open_basedir]=/usr/local/url1:/usr/local/url2 

2、查看两个pool的启动进程

查看进程

  1. ps -aux | grep php-rpm 
  2. root   2486 0.4 0.6 32240 3136 ?    Ss  09:31  0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) 
  3. php-fpm  2487 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1 
  4. php-fpm  2488 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1 
  5. php-fpm  2489 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1 
  6. php-fpm  2490 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1 
  7. php-fpm  2491 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1 
  8. php-fpm  2492 0.0 0.4 32036 2532 ?    S  09:31  0:00 php-fpm: pool www1 
  9. test   2507 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2 
  10. test   2508 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2 
  11. test   2509 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2 
  12. test   2510 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2 
  13. test   2511 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2 
  14. test   2512 0.0 0.4 32036 2536 ?    S  09:31  0:00 php-fpm: pool www2

Tags: PHP-FPM pool

分享到: