1、配置主文件:
首先要找到php-fpm的主配置文件,我们可以通过下面的命令来获取配置文件所在。
ps -ef | grep php
打开配置文件/etc/php/7.1/fpm/php-fpm.conf,修改一下参数,并去掉其注释
emergency_restart_threshold = 10
emergency_restart_interval = 1m
这个两个参数表示这个php-fpm如果在1分钟内有10个进程失效的话,php-fpm就将优雅重启。
2、配置进程池
通常一个php应用就会用于一个属于自己的php-fpm进程池,php-fpm进程池是一系列先关的php子进程。
在主配置文件的Pool Definition区域有这么一行话:
include=/etc/php/7.1/fpm/pool.d/*.conf
这段代码的主要作用就是让php-fpm加载进程池。
进入pool.d目录,可以看到一个名为www.conf的文件,这是名为www的默认php-fpm进程池配置文件。
打开配置文件,对一下主要参数进行配置
user = yanming //拥有该进程池中子进程的用户,设置为运行php应用的非根用户
group = yanming //用户组
listen = 127.0.0.1:9000 //PHP-FPM进程池监听的IP地址和端口号,让PHP-FPM只接收nginx从这里传入的请求
listen.allowed_clients = 127.0.0.1 //设置可以向该PHP-FPM发送请求的地址(一个或多个),为了安全,一般只允许本机的nginx把请求转发给PHP-FPM进程池
pm.max_children = 51 //设定PHP-FPM最多可以连接多少个子进程,没有标准值,一般为进程池的可用内存/每个子进程使用的内存(一般为10M)
pm.start_servers = 2 //PHP-FPM启动时PHP-FPM进程池中立即可用的进程数,确保头几个进入的HTTP请求无需等待PHP-FPM初始化进程
pm.min_spare_servers = 2 //PHP应用空闲时进程池中可以存在的最小进程数,用来确保新进入的HTTP请求无需等待PHP-FPM重新初始化进程
pm.max_spare_servers = 4 //
PHP应用空闲时进程池中可以存在的最大进程数,用来确保新进入的HTTP请求无需等待PHP-FPM重新初始化进程
pm.max_requests = 1000 //回收进程之前,PHP-FPM进程池中的各个子进程所能处理的最大的HTTP请求数
slowlog = /var/log/php7.1/slow.log //慢日志
request_slowlog_timeout = 5s //规定超过多次时间的HTTP请求进入慢日志
配置完成之后重启PHP-FPM
sudo service php7.1-fpm.conf restart