#在lnmp,php-fpm相当于apache,处理php脚本,nginx可以说是一个代理
#php-fpm,fastcgi有两种通信方式:sock或者IP+端口
#php-fpm是处理php脚本,nginx是处理用户请求,请求的php是由php-fpm处理
php-fpm配置文件
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]
listen = /tmp/php-fcgi.sock #或者listen =127.0.0.1:9000
user = php-fpm
group = php-fpm
listen.owner = nobody
listen.group = nobody
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
slowlog = /tmp/www_slow.log
request_slowlog_timeout = 1
php_admin_value[open_basedir]=/data/www/:tmp/
[www1]
listen = /tmp/php-fcgi2.sock #或者listen =127.0.0.1:9001
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
#www可以分多个池 slowlog开启慢查询日志,时间超过1s就记录下来
当fastcgi使用sock时,一定要指定nginx的用户和组,因为nginx虚拟主机指定了去哪里读fastcgi的sock,所以需要nginx用户的权限,不然网页会502
listen.owner = nobody
listen.group = nobody
当fastcgi使用sock时,nginx的虚拟主机也要使用sock解析php
动态、静态子进程pm = static/dynamic
如果选择static,则由pm.max_children指定固定的子进程数。
如果选择dynamic,则由以下参数决定:
pm.max_children ,静态方式下开启的php-fpm进程数量,在动态方式下他限定php-fpm的最大进程数,(这里要注意pm.max_spare_servers的值只能小于等于pm.max_children)
pm.start_servers ,启动时的进程数
pm.min_spare_servers ,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子>进程
pm.max_spare_servers ,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
对于专用服务器,pm可以设置为static。
/usr/local/php/sbin/php-fpm –t
/etc/init.d/php-fpm restart #重启后/tmp/php-fcgi.sock权限变成660