PHP-FPM 服务设定配置文件,可以通过不同的监听端口和不同的管理选项启动多个子进程池。 池的名称将用于日志和统计信息。 FPM可以处理的池数量没有限制。
一、进程池名[www]
Start a new pool named 'www'
变量$pool可以被任何指令引用,并替换为进程池名。
;prefix = /path/to/pools/$pool
进程池的前缀
user = nobody
group = nobody
用户和用户组
二、网络配置
listen = 127.0.0.1:9000
监听地址
;listen.backlog = 128
设置TCP协议listen(2)端口半连接队列的长度
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
如果使用,表示设置 Unix 套接字的权限
;listen.allowed_clients = 127.0.0.1
设置允许连接到 FastCGI 的服务器 IPV4 地址。
等同于 PHP FastCGI (5.2.2+) 中的 FCGI_WEB_SERVER_ADDRS 环境变量。
仅对 TCP 监听起作用。每个地址是用逗号分隔,如果没有设置或者为空,则允许任何服务器请求连接。
默认值:any。
三、PHP-FPM进程管理
; process.priority = -19
池进程的优先级
pm = dynamic
pm.max_children
pm.start_servers
pm.min_spare_servers
pm.max_spare_servers
设置PHP-FPM管理子进程的方式
;pm.process_idle_timeout = 10s;
进程空闲多少秒后会被杀死。仅在 pm 设置为 dynamic 时使用。默认值:10s
;pm.max_requests = 500
设置每个子进程重生之前服务的请求数。对于可能存在内存泄漏的第三方模块来说是非常有用的。
如果设置为 ‘0’ 则一直接受请求;Default Value: 0
四、PHP-FPM 服务运行状态监控
;pm.status_path = /status
FPM 状态页面的网址。如果没有设置,则无法访问状态页面,默认值:无
;ping.path = /ping
FPM 监控页面的 ping 网址。如果没有设置,则无法访问 ping 页面。该页面用于外部检测 FPM 是否存活并且可以响应请求。请注意必须以斜线开头(/)。
;ping.response = pong
用于定义 ping 请求的返回响应。返回为 HTTP 200 的 text/plain 格式文本。默认值:pong。
五、PHP-FPM 服务日志设置
;access.log = log/$pool.access.log
访问日志文件;默认不设置
;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
日志格式
;slowlog = log/$pool.log.slow
慢日志
;request_slowlog_timeout = 0
定义慢日志超时时间
;catch_workers_output = yes
重定向运行过程中的 stdout 和 stderr 到主要的错误日志文件中。如果没有设置,stdout 和 stderr 将会根据 FastCGI 的规则被重定向到 /dev/null。默认值:无。
六、处理超时和文件描述符
;request_terminate_timeout = 0
设置单个请求的超时中止时间
;rlimit_files = 1024
设置文件打开描述符的 rlimit 限制。默认值:系统定义值
;rlimit_core = 0
设置核心 rlimit 最大限制值。
七、PHP-FPM 设置目录
;chroot =
启动时的 Chroot 目录。所定义的目录需要是绝对路径。如果没有设置,则 chroot 不被使用。
;chdir = /var/www
设置启动目录,启动时会自动 Chdir 到该目录。所定义的目录需要是绝对路径。默认值:当前目录,或者根目录(chroot时)。
八、PHP-FPM 其他配置
;clear_env = no
清理工作进程的环境
;security.limit_extensions = .php .php3 .php4 .php5
限制master进程允许解析的文件扩展。
;env[HOSTNAME] = $HOSTNAME
;env[PATH] = /usr/local/bin:/usr/bin:/bin
;env[TMP] = /tmp
;env[TMPDIR] = /tmp
;env[TEMP] = /tmp
传递环境变量
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
;php_flag[display_errors] = off
;php_admin_value[error_log] = /var/log/fpm-php.www.log
;php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M