是不是经常在网上看到php-fpm.conf的各种配置项?什么pm.max_children、pm.min_spare_servers、pm.status_path、listen等等。他们到底代表什么意思存放在那个文件里呢?接下来我们就来一探究竟。
在fpm源码初探文章中,我们介绍了源码目录。其中提到两个文件:php-fpm.conf.in
和www.conf.in
,这两个文件在安装完php-fpm之后对应的是php-fpm.conf
和php-fpm.d/www.conf`两个文件。我们具体来看下这两个文件里面的配置指令。
php-fpm.conf
存放php-fpm全局配置
pid:
此指令用于配置php-fpm运行时主进程的pid存放位置,默认在安装目录的var/run目录下。
error_log:
设置fpm日志文件路径,如果设置为syslog,则不会写本地日志文件,会直接发送给syslogd。
syslog.facility:
设置日志程序的执行方式,默认daemon,常驻后台类型。
syslog.ident:
fpm日志文件前缀,如果有多个fpm运行,可以为每一个单独设置前缀,默认php-fpm
log_level:
fpm日志级别,默认notice,可选值:alert, error, warning, notice, debug
emergency_restart_threshold和emergency_restart_interval
表示在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过emergency_restart_threshold个php-fpm就会优雅重启。这两个选项一般保持默认值。
SIGBUS(Bus error)意味着指针所对应的地址是有效地址,但总线不能正常使用该指针。通常是未对齐的数据访问所致。
SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。
process_control_timeout
设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0。
process.max
fpm能够fork的最大进程数,如果设置为0,表示没有限制。主要为fpm的dynamic模式里pool设置。
process.priority
在使用root账户启动fpm master进程时,设置master进程的优先级。优先级从-19~20,优先级从高到低。
1 | ;;;;;;;;;;;;;;;;;;;;; |