linux 学习笔记-051-LNMP 中的 php-fpm 相关配置

发布于 2018-03-19  510 次阅读


php-fpm 的 pool

pool(连接池),查看 php-fpm 进程的时候,可以个进程的最后看到 pool,这个 pool 是我们在 php-fpm 配置文件中定义的连接池

linux 学习笔记-051-LNMP 中的 php-fpm 相关配置

我们可以在 php-fpm 配置文件中定义多个 pool,分别对应不同的 sock,监听不同的端口

当访问某个页面是提示 502,一般是 pool 资源耗尽所致

当所有站点使用同一个 pool 时,刚好这个 pool 资源耗尽,将会导致所有站点都不可用,所以建议把 pool 和站点一一对应,一个站点使用一个 pool,那么,该怎么让一个 php-fpm 有多个 pool 呢?往下看。

第一种方法:

[root@am-01:~#] vim /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 = 127.0.0.1:9000

  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

  [am]

  listen = /tmp/am.sock

  #listen = 127.0.0.1:9000

  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@am-01:~#] /usr/local/php-fpm/sbin/php-fpm -t

[19-Mar-2018 19:20:21] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@am-01:~#] /etc/init.d/php-fpm reload

Reload service php-fpm  done

#在原有的配置文件上新增一段 pool 配置,命名为 am,注意 listen 的设置,最后测试一下有没有语法错误,重新加载 php-fpm
[root@am-01:~#] ps -aux| grep php-fpm

root     101514  2.6  0.4 229264  4996 ?        Ss   19:27   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)

php-fpm  101515  0.0  0.4 229204  4728 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101516  0.0  0.4 229204  4728 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101517  0.0  0.4 229204  4728 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101518  0.0  0.4 229204  4728 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101519  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101520  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101521  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101522  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101523  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101524  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101525  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101526  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101527  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101528  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101529  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101530  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101531  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101532  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101533  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101534  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool www

php-fpm  101535  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101536  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101537  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101538  0.0  0.4 229204  4732 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101539  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101540  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101541  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101542  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101543  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101544  0.0  0.4 229204  4736 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101545  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101546  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101547  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101548  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101549  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101550  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101551  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101552  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101553  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

php-fpm  101554  0.0  0.4 229204  4740 ?        S    19:27   0:00 php-fpm: pool am

root     101556  0.0  0.0 112680   980 pts/1    S+   19:27   0:00 grep --color=auto php-fpm

#查看 php-fpm 的进程,可见,pool 为 am 的进程已经有了
[root@am-01:~#] cd /usr/local/nginx/conf/vhost/

[root@am-01:/usr/local/nginx/conf/vhost#] ls

aaa.com.conf  load.conf  proxy.conf  ssl.conf  test.com.conf

[root@am-01:/usr/local/nginx/conf/vhost#] vim aaa.com.conf

  server

  {

      listen 80 default_server;

      server_name aaa.com;

      index index.html index.htm index.php;

      root /data/wwwroot/default;

      location ~ \.php$

      {

          include fastcgi_params;

          fastcgi_pass unix:/tmp/am.sock;

          fastcgi_index index.php;

          fastcgi_param SCRIPT_FILENAME /data/wwwroot/aaa.com$fastcgi_script_name;

      }

  }

[root@am-01:/usr/local/nginx/conf/vhost#] cd /data/wwwroot/

[root@am-01:/data/wwwroot#] ls

111.com  abc.com  am.com  default  test.com

[root@am-01:/data/wwwroot#] mkdir aaa.com

[root@am-01:/data/wwwroot#] ls

111.com  aaa.com  abc.com  am.com  default  test.com

#编辑 aaa.com 的虚拟主机配置文件,并写入解析 php 的语句,这里的 sock 使用新定义的 pool 的 sock,同时新建 aaa.com 的站点目录,这样,aaa.com 使用的 pool 就会是 am 了

第二种方法:

[root@am-01:/data/wwwroot#] vim /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

  include = etc/php-fpm.d/*.conf

#在 php-fpm 配置文件中新增 include 配置,同时把下面的 pool 相关配置复制一份出来,然后删除
[root@am-01:/data/wwwroot#] cd /usr/local/php-fpm/etc/

[root@am-01:/usr/local/php-fpm/etc#] mkdir php-fpm.d

[root@am-01:/usr/local/php-fpm/etc#] vim 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

[root@am-01:/usr/local/php-fpm/etc#] vim php-fpm.d/aaa.conf

  [am]

  listen = /tmp/am.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

#新建 php-fpm.d 目录,在里面新建 www.conf 和 aaa.conf 配置文件,把刚才复制的内容分别粘贴进去
[root@am-01:/usr/local/php-fpm/etc#] /usr/local/php-fpm/sbin/php-fpm -t

[19-Mar-2018 19:47:50] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@am-01:/usr/local/php-fpm/etc#] /etc/init.d/php-fpm reload

Reload service php-fpm  done

[root@am-01:/usr/local/php-fpm/etc#] ps -aux| grep php-fpm

root     101732  1.0  0.4 229292  4984 ?        Ss   19:47   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)

php-fpm  101733  0.0  0.4 229232  4732 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101734  0.0  0.4 229232  4732 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101735  0.0  0.4 229232  4732 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101736  0.0  0.4 229232  4732 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101737  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101738  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101739  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101740  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101741  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101742  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101743  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101744  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101745  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101746  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101747  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101748  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101749  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101750  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101751  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101752  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool am

php-fpm  101753  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101754  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101755  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101756  0.0  0.4 229232  4736 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101757  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101758  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101759  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101760  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101761  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101762  0.0  0.4 229232  4740 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101763  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101764  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101765  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101766  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101767  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101768  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101769  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101770  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101771  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

php-fpm  101772  0.0  0.4 229232  4744 ?        S    19:47   0:00 php-fpm: pool www

root     101774  0.0  0.0 112680   980 pts/1    S+   19:47   0:00 grep --color=auto php-fpm

#测试配置文件的正确性并重载配置文件,看进程可以看到,配置是成功的,最后跟第一种方法一样,编辑 aaa.com 的虚拟主机配置文件就可以了

php-fpm 慢执行日志

搭建 php 网站,建议使用 LNMP 架构,其中主要是可以分析 php 的慢执行日志

当网站访问慢的时候,需要排查的是系统负载是否过高,但对于 php 网站来讲,可以通过分析 php 慢执行日志找到根本原因

[root@am-01:/usr/local/php-fpm/etc#] cd php-fpm.d/

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] ls

aaa.conf  www.conf

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] vim 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

#这里拿 www.conf 配置文件做实验,增加两句参数,开启慢执行日志功能并把跟踪时间设置为 1 秒
[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] /usr/local/php-fpm/sbin/php-fpm -t

[19-Mar-2018 21:57:17] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] /etc/init.d/php-fpm reload

Reload service php-fpm  done

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] ls /usr/local/php-fpm/var/log/

php-fpm.log  www-slow.log

#测试及重载配置文件,查看是否有生成慢执行日志文件
[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] vim /data/wwwroot/test.com/sleep.php

  <?php

  echo "test slow log";

  sleep(2);

  echo "done";

  ?>

#因为目前 www.conf 是被/data/wwwroot/test.com/这个站点使用,所以在这个站点下新建一个 php 页面,做测试,故意让这个页面休眠 2 秒钟
[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] cat /usr/local/php-fpm/var/log/www-slow.log

[19-Mar-2018 22:14:11]  [pool www] pid 102098

script_filename = /data/wwwroot/test.com/sleep.php

[0x00007f59ece572e0] sleep() /data/wwwroot/test.com/sleep.php:3

#测试可见,执行时间超过了 1 秒的脚本会有提示,并会告诉你是第几行影响速度

知识点:

遇到报 500 的错误之类的,可以打开 php.ini 的错误输出,一般可以见到具体的错误

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] vim /usr/local/php-fpm/etc/php.ini

  display_errors = On

open_basedir

open_basedir 的作用是限制 php 在指定的目录里活动

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] vim 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/wwwroot/test.com:/tmp/

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] /usr/local/php-fpm/sbin/php-fpm -t

[19-Mar-2018 23:10:12] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] /etc/init.d/php-fpm reload

Reload service php-fpm  done

#这里针对 test.com 这个站点做 open_basedir 的设置,测试配置文件正确性并重载配置文件

测试:

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] vim /usr/local/php-fpm/etc/php.ini

  error_reporting = E_ALL

  display_errors = Off

  error_log = /usr/local/php-fpm/var/log/php_errors.log

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] grep error_log /usr/local/php-fpm/etc/php.ini

; server-specific log, STDERR, or a location specified by the error_log

; Set maximum length of log_errors. In error_log information about the source is

;error_log = php_errors.log

;error_log = syslog

error_log = /usr/local/php-fpm/var/log/php_errors.log

; OPcache error_log file name. Empty string assumes "stderr".

;opcache.error_log=

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] touch /usr/local/php-fpm/var/log/php_errors.log

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] chmod 777 /usr/local/php-fpm/var/log/php_errors.log

#配置 php-fpm 错误日志相关的配置,在日常运维中,display_errors 一般要 Off,手动生成 php_errors.log 文件并赋予 777 权限
[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] vim 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/wwwroot/wwwtest.com:/tmp/

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] /usr/local/php-fpm/sbin/php-fpm -t

[19-Mar-2018 23:27:44] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] /etc/init.d/php-fpm reload

Reload service php-fpm  done

#这里故意把站点所在目录写错,查看一下错误日志的输出信息,测试配置文件正确性并重载
[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] curl -x127.0.0.1:80 test.com/index.php -I

HTTP/1.1 404 Not Found

Server: nginx/1.12.1

Date: Mon, 19 Mar 2018 15:28:36 GMT

Content-Type: text/html; charset=UTF-8

Connection: keep-alive

X-Powered-By: PHP/5.6.30

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] cat /usr/local/php-fpm/var/log/php_errors.log

[19-Mar-2018 15:28:36 UTC] PHP Warning:  Unknown: open_basedir restriction in effect. File(/data/wwwroot/test.com/index.php) is not within the allowed path(s): (/data/wwwroot/wwwtest.com:/tmp/) in Unknown on line 0

[19-Mar-2018 15:28:36 UTC] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0

#错误日志会指出哪里出问题导致的 404
[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] vim 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/wwwroot/test.com:/tmp/

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] /usr/local/php-fpm/sbin/php-fpm -t

[19-Mar-2018 23:27:44] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] /etc/init.d/php-fpm reload

Reload service php-fpm  done

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] curl -x127.0.0.1:80 test.com/index.php -I

HTTP/1.1 200 OK

Server: nginx/1.12.1

Date: Mon, 19 Mar 2018 15:32:18 GMT

Content-Type: text/html; charset=UTF-8

Connection: keep-alive

X-Powered-By: PHP/5.6.30

#把站点路径修正,继续测试,可以正常访问,并且返回了 200 状态码

php-fpm 进程管理

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] cat www.conf

  [www]

  listen = /tmp/php-fcgi.sock

  listen.mode = 666

  user = php-fpm

  group = 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 的子进程最多可以处理这么多请求,当达到这个数值时,它会自动退出

  rlimit_files = 1024

  request_slowlog_timeout = 1

  slowlog = /usr/local/php-fpm/var/log/www-slow.log

  php_admin_value[open_basedir]=/data/wwwroot/test.com:/tmp/

#这里解释一下 pm 那几行配置的作用,当 pm 设置为 static 时,只有 pm.max_children 会生效

这里做个实验

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] vim www.conf

  pm.start_servers = 6

[root@am-01:/usr/local/php-fpm/etc/php-fpm.d#] ps -aux| grep php-fpm

root     102760  0.3  0.4 229292  4964 ?        Ss   00:08   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)

php-fpm  102761  0.0  0.4 229232  4728 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102762  0.0  0.4 229232  4728 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102763  0.0  0.4 229232  4728 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102764  0.0  0.4 229232  4728 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102765  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102766  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102767  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102768  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102769  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102770  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102771  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102772  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102773  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102774  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102775  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102776  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102777  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102778  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102779  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102780  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool am

php-fpm  102781  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool www

php-fpm  102782  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool www

php-fpm  102783  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool www

php-fpm  102784  0.0  0.4 229232  4732 ?        S    00:08   0:00 php-fpm: pool www

php-fpm  102785  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool www

php-fpm  102786  0.0  0.4 229232  4736 ?        S    00:08   0:00 php-fpm: pool www

root     102788  0.0  0.0 112680   976 pts/1    S+   00:08   0:00 grep --color=auto php-fpm

#可以见到,pool 为 www 的初始启动时只有 6 个进程

扩展

nginx 中的 root 和 alias 区别:

http://blog.csdn.net/21aspnet/article/details/6583335

nginx 的 alias 和 root 配置:

http://www.ttlsa.com/nginx/nginx-root_alias-file-path-configuration/

http://www.iigrowing.cn/shi-yan-que-ren-nginx-root-alias-location-zhi-ling-shi-yong-fang-fa.html