php-fpm是用来处理php请求的,它的配置文件为/usr/local/php/etc/php-fpm.conf(路径随个人环境)

php-fpm.conf自带是有内容的不过大部分被注释掉了所以我们不妨删除原有的内容重新写入。


#> /usr/local/php/etc/php-fpm.conf # >单独使用可以清空一个文件

# vim/usr/local/php/etc/php-fpm.conf

[global] # 全局部分

pid =/usr/local/php/var/run/php-fpm.pid

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

[www] # pool部分(名称可以自定义)

listen = /tmp/www.sock

user = php-fpm

group = php-fpm

pm = dynamic #动态管理,静态就是static

pm.max_children = 50 #子进程最大50个

pm.start_servers = 20 #服务启动时生成20个子进程

pm.min_spare_servers =5 #空闲子进程最少5个

pm.max_spare_servers =35#空闲子进程最多35个

pm.max_requests = 500 #一个子进程生命周期内最多处理多少个请求

rlimit_files = 1024 #每个进程所使用文件描述符的限制

创建多个池子

[www1]

listen =/tmp/www1.sock

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

#/etc/init.d/php-fpm restart #重启服务


不同的域名指定不同的池子/多个域名使用一个池子

#ls /usr/local/nginx/conf/vhosts

111.conf 222.conf

编辑fastcgi_pass unix:/tmp/php-fcgi.sock这行

指定池子,如指定www,则修改为fastcgi_pass unix:/tmp/www.sock

如指定www1,则修改为fastcgi_pass unix:/tmp/www1.sock

性能追踪网站运行慢

#vim/usr/local/php/etc/php-fpm.conf

在每个池子下面加入慢查询

slowlog =/tmp/www_slow.log#不同的池子指定不同的slowlog

request_slowlog_timeout=1 #超时时间,超过1秒就记录它

php_admin_value[open_basedir]=/data/www/:/tmp/

#open_dasedir将用户访问文件的活动范围限制在指定的区域,通常是其家目录的路径