首页 > 开发 > PHP > 正文

php-fpm.conf配置文件中文说明详解及重要参数说明

2024-05-04 22:42:03
字体:
来源:转载
供稿:网友

php-fpm工作流程

php-fpm全名是PHP FastCGI进程管理器

php-fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php.ini的配置。

启动php-fpm之后,会创建一个master进程,监听9000端口(可配置),master进程又会根据fpm.conf/www.conf去创建若干子进程,子进程用于处理实际的业务。

当有客户端(比如nginx)来连接9000端口时,空闲子进程会自己去accept,如果子进程全部处于忙碌状态,新进的待accept的连接会被master放进队列里,等待fpm子进程空闲;

这个存放待accept的半连接的队列有多长,由 listen.backlog 配置。

php-fpm全局配置说明

配置里面的所有相对路径,都是相对于php的安装路径。

除了有php-fpm.conf配置文件外,通常还有其他的*.conf配置文件(也可以不要,直接在php-fpm.conf配置)用于配置进程池,不同的进程池可以用不同的用户执行,监听不同的端口,处理不同的任务;多个进程池共用一个全局配置。

include=/opt/remi/php56/root/etc/php-fpm.d/*.conf 载入其他的配置文件。

php-fpm全局配置参数中文说明:

pid = /opt/remi/php56/root/var/run/php-fpm/php-fpm.pid 
#pid进程文件,默认为none。

error_log = /opt/remi/php56/root/var/log/php-fpm/error.log 
#错误日志位置,默认:安装路径 #INSTALL_PREFIX#/log/php-fpm.log。如果设置为syslog,log就会发送给syslogd服务而不会写进文件里。

syslog.facility = daemon 
#把日志写进系统log,linux还不够熟悉,暂时不用理会。

syslog.ident = php-fpm 
#系统日志标示,如果跑了多个fpm进程,需要用这个来区分日志是谁的。

log_level = notice 
#日志等级,默认notice,可选:alert, error, warning, notice, debug

emergency_restart_threshold = 60 
#配合下面emergency_restart_interval参数

emergency_restart_interval = 60s 
#如果在此参数设置的时间内,出现SIGSEGV或SIGBUS的子进程数超过emergency_restart_threshold参数设置的值,那么fpm就会优雅的重启,值是0表示off这个功能,可用的单位有:s秒,m分,h时,d天。

process_control_timeout = 0 
#设置子进程接受主进程复用信号的超时时间。这个每天明白,是过了这个时间就不能复用了?

process.max = 128 
#当动态管理子进程时,fpm最多能fork多少个进程,0表示无限制,这是所有进程池能启动子进程的总和,谨慎使用。

process.priority = -19 
#设置子进程的优先级,在master进程以root用户启动时有效;如果没有设置,子进程会继承master进程的优先级,值范围-19(最高)到20(最低),默认不设置。

daemonize = yes 
#设置成no用于调试bug,默认为yes。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表