说明:/usr/local/php/etc/php-fpm.conf 用于管理php服务
/usr/local/php/etc/php.ini php本身的全局配置文件
一、清空配置文件
清空命令: > /usr/local/php/etc/php-fpm.conf
二、编辑新的文件/usr/local/php/etc/php-fpm.conf
说明:www表示pool的名字;新增的pool,除了名字和sock不能相同,其他可以一致;不同主机,可以在配置文件中指定不同的pool,即指定不同的监听方式:fastcgi_pass unix:/tmp/php-fcgi.sock
内容如下:
<code>[global]</code>
<code>pid = </code><code>/usr/local/php/var/run/php-fpm</code><code>.pid</code>
<code>error_log = </code><code>/usr/local/php/var/log/php-fpm</code><code>.log</code>
<code>[www]</code>
<code>listen = </code><code>/tmp/www</code><code>.sock</code>
<code>user = php-fpm</code>
<code>group = php-fpm</code>
<code>listen.owner = nobody</code>
<code>listen.group = nobody</code>
<code>pm = dynamic</code>
<code>pm.max_children = 50</code>
<code>pm.start_servers = 20</code>
<code>pm.min_spare_servers = 5</code>
<code>pm.max_spare_servers = 35</code>
<code>pm.max_requests = 500</code>
<code>rlimit_files = 1024</code>
<code>slowlog = </code><code>/tmp/www_slow</code><code>.log</code>
<code>request_slowlog_timeout = 1</code>
<code>php_admin_value[open_basedir]=</code><code>/data/www/</code><code>:</code><code>/tmp/</code>
<code>[www1]</code>
<code>listen = </code><code>/tmp/www1</code><code>.sock</code>
解释:
<code>listen = </code><code>/tmp/php-fcgi</code><code>.sock </code><code>#较多采用socket监听方式,名字可自定义,默认是127.0.0.1:9000</code>
<code>listen.owner = nobody </code><code>#nginx中默认监听的socket文件权限是所有者只读,属组和其他用户没有任何权限。所以,nginx的启动用户(咱们配置的是nobody)就没有办法去读这个socket文件,最终可能会导致502;或者配置listen.mode = 0666 </code>
<code>pm = dynamic </code><code>#动态,管理pm子进程,如果写成static,则除了pm.max_children,其他不管用</code>
<code>pm.max_children = 50 </code><code>#子进程最大50个,由于php是阻塞的,1个进程只能同时处理一个php请求,max_children设置高可以同时处理更多的请求,但也意味着会占用更多的服务器资源</code>
<code>pm.start_servers = 20 </code><code>#一开始启动20个</code>
<code>pm.min_spare_servers = 5 </code><code>#空闲时,最小为5个</code>
<code>pm.max_spare_servers = 35 </code><code>#空闲时,最多为35个</code>
<code>pm.max_requests = 500 </code><code>#一个子进程在生命周期内共处理多少个请求,自动销毁,可以解决php内存泄露的问题。但如果这个值设置太小,造成php频繁重启,也会对性能造成影响</code>
<code>rlimit_files = 1024 </code><code>#每一个进程所使用的文件描述符限制</code>
<code>slowlog = </code><code>/tmp/www_slow</code><code>.log </code><code># 增加slow日志,当网络访问慢时,可以查看该日志</code>
<code>request_slowlog_timeout = 1 </code><code># 当脚本执行时间超过1秒钟,就记录</code>
<code>php_admin_value[open_basedir]=</code><code>/data/www/</code><code>:</code><code>/tmp/</code> <code># 用于不同域名来限制访问目录</code>
三、pool池的体现
说明:根据配置文件,php-fpm可以启动多个pool池,分给不同的主机用,默认启动20个,如没有请求,则会一点一点损耗;不同的域名也可以使用相同的池子;分开的话,权限可以分开,一旦池子出现故障,可以避免其他网站同时挂掉
本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1900631,如需转载请自行联系原作者