pm = dynamic
#启动时子进程管理方式,可选值:static(启动时创建指定个数), dynamic(启动时根据情况创建,至少有一个), ondemand(启动时不创建子进程,有需求才创建)
pm.max_children = 5
#该池同时最多存在5个进程, 三种管理方式都要配置
pm.start_servers = 2
#fpm启动时创建2个子进程,只适用动态dynamic管理方式
pm.min_spare_servers = 2
#服务器闲置时最少保持2个子进程,不够这个数就会创建,只适用动态dynamic管理方式
pm.max_spare_servers = 3
#服务器闲置时最多要有几个,多了会kill,只适用动态dynamic管理方式
pm.process_idle_timeout = 10s
#子进程闲置10s后就会被杀掉。
pm.max_requests = 500
#每个子进程最大处理500请求就被回收,可防止内存泄露。
pm.status_path string
#FPM 状态页面的网址。如果没有设置,则无法访问状态页面,默认值:无。
ping.path string
#FPM 监控页面的 ping 网址。如果没有设置,则无法访问 ping 页面。该页面用于外部检测 FPM 是否存活并且可以响应请求。请注意必须以斜线开头(/)。
ping.response string
#用于定义 ping 请求的返回响应。返回为 HTTP 200 的 text/plain 格式文本。默认值:pong。
process.priority int
#设置 worker 的 nice(2)优先级(如果设置了的话)。 该值从 -19(最高优先级) 到 20(更低优先级)。 默认值:不设置
prefix string
#检测路径时使用的前缀
access.log = var/log/$pool.access.log
#访问文件日志,没啥用处,比如yii2每次都记录访问index.php,只是记录真实的PHP文件。
slowlog = var/log/$pool.log.slow
#PHP文件执行过慢的日志,会准确的记录具体哪一行代码太慢,这个非常有用,在设置了时间时生效。
request_slowlog_timeout = 2s
#超过这个运行时间就会写慢日志
request_terminate_timeout = 3s
#单个请求的超时时间,有时候php.ini设置的最大执行时间未生效,这个就会来干掉那个执行太久的请求。
rlimit_files = 1024
#最大打开句柄数,默认为系统值。
rlimit_core = 0
#最多的核心使用数,默认为系统分配。
chroot = /path
#路径必须是绝对路径,改变子进程的跟目录,可以把进程对文件系统的读写与实际的操作系统文件系统隔离,对安全有好处。
chdir = /var/www
#改变当前工作目录,可以用相对路径,默认是当前目录或者chroot。
catch_workers_output = yes
#重定向标准输出stdout和标准错误stderr到主错误日志,如果不设置,这两个日志就会定向到/dev/null,在高负载情况下,这个配置会引起页面延迟几毫秒,默认不开启。
clear_env = no
#创建work进程时是否清除环境变量,如果是yes,那么该子进程 getenv() 就访问不到 $_ENV 和$_SERVER 了。
security.limit_extensions = .php .php3 .php4 .php5
#为了安全,限制能执行的脚本后缀
#为当前池指定另外的 php.ini 配置,比如指定当前池的错误日志写在哪个地方
php_value/php_flag
#可以设置php.ini的内容,可以被ini_set覆盖
php_admin_value/php_admin_flag
#这个同上,但是不会被ini_set覆盖。
#其中flag设置的,值只能是on, off, 1, 0, true, false, yes or no,其他类型的值需要用value。
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
#这种方法设置 `disable_functions` 和 `disable_classes` 时,不会覆盖 php.ini 的设置,只会追加。
注意:PHP配置值通过 php_value 或者 php_flag 设置,并且会覆盖以前的值。
disable_functions 或者 disable_classes 在 php.ini 之中定义的值不会被覆盖掉,但是会将新的设置附加在原有值的后面。
使用 php_admin_value 或者 php_admin_flag 定义的值,不能被 PHP 代码中的 ini_set() 覆盖。
自 5.3.3 起,也可以通过 web 服务器设置 PHP 的设定。
nginx 通过 unixsock 与 php-fpm 通信:
适用场景:nginx和php-fpm在同一台服务器上,这时可以直接用unixsocket进程间通信,不走tcp端口通信,可以节约创建连接的时间,从而提高性能。
1、设置php-fpm的listen为/opt/remi/php56/root/var/run/php-fpm/php567-fpm.sock(可以用相对路径),然后重启fpm就会自动创建该php567-fpm.sock文件