FPM是php-fpm。使用conf,php。使用类似于ini的语法处理池配置文件。
php-fpm.conf全局设置部分
pid字符串
PID文件的位置。默认值为空。
error_log字符串
错误日志的位置。默认值:#INSTALL_PREFIX#/log/php-fpm.log。 如果设置为“syslog”,则日志不会写入本地文件,而是发送到syslogd。
log_级别字符串
埃拉雷贝尔。可用级别包括:。警报(必须立即处理)、错误(错误状态)、警告(警告状态)、通知(一般重要信息)和调试(调试信息)。默认值:通知。
log_limit整数
日志行数限制,可以在不折返的情况下记录超过1024个字符的消息。默认值:1024。PHP7.3.0以后可以使用。
log_buffering布尔值
实验:记录日志,无需额外缓冲。默认值:是。PHP7.3.0以后可以使用。
syslog.伪字符串
设置记录消息的程序。默认值为守护进程。
syslog.ident字符串
为每个消息添加前缀。如果在同一服务器上运行多个FPM实例,则可以根据需要更改此默认值。默认值:php-fpm。
Emergency_restart_threshold int
如果子进程包含emergency_restart_如果在interval设置的时间内,仅接收到此参数设置的次数的SIGSEGV或SIGBUS结束消息编号,则FPM将重新启动。0表示关闭此功能。默认值:0(禁用)。
Emergency_restart_interval混合
Emergency_restart_interval用于设置灰度完全重启间隔。这样做有助于解决加速器使用共享内存的问题。可用单位:s(秒)、m(分钟)、h(小时)或d(天)。默认单位:s(秒)。默认值:0(禁用)。
process_control_timeout混合
设置子进程接受主进程的多路复用信号的超时时间。可用单位:s(秒)、m(分钟)、h(小时)或d(天)。默认单位:s(秒)。默认值:0(禁用)。
process.max int
要分叉的最大FPM进程数。在动态管理进程数时,此设计允许您控制进程池中的全局进程数。请小心使用。默认值:0。
process.priority int
设置主进程的nice(2)优先级(如果设置了此值)-19(最高优先级)到20(低优先级)之间的值。默认值:未设置。
daemonize bool
将FPM设置为在后台运行。如果设置“否”,则FPM将继续在前台运行以进行调试。默认值:是。
rlimit_files int
设置主进程的打开文件描述符rlimit的数量。默认值:系统定义的值。
rlimit_core int
设置主进程的最大核心的rlimit大小。默认值:0。
events.机构字符串
设置FPM使用的事件机制。以下选项可用:选择、pool、epoll、kqueue(*BSD)、port(Solaris)。默认值:未设置(自动检测)
systemd_interval int
使用systemd统一FPM时,设置通知systemd报告有效的间隔(以秒为单位)。设置为0以禁用。默认值:10。
执行配置部分
FPM允许您以不同的设置运行多个进程池。您可以为每个进程池单独设置这些设置。
听字符串
设置接受FastCGI请求的地址。可用格式为“ip:port”、“port”、“/path/to/unix/socket”。必须设置每个进程池。
listen.backlog int
listen(2)设置积压值。在BSD系统中-1意味着无限制。默认值:-1(FreeBSD或OpenBSD)或511(Linux或其他平台)。
listen.allowed_clients字符串
设置允许连接到FastCGI客户端的IPv4或IPv6地址列表。PHP FastCGI(5.2.2+)的FCGI_WEB_SERVER_相当于ADDRS环境变量。仅适用于TCP侦听。每个地址都用逗号分隔。如果未设置或为空,则允许请求连接的所有服务器。默认值:未设置(接受任何IP地址)。
listen.所有者字符串
如果使用的是Unix套接字,则该权限。WEB服务器连接必须在Linux中设置读写权限。您可以忽略许可,以便在许多BSD派生系统中允许自由连接。默认值:要运行的用户和组,权限0660。
listen.组字符串
listen.请参见owner。
listen.模式字符串
listen.请参见owner。
listen.acl_用户字符串
如果系统支持POSIX ACL(访问控制列表),则可以设置此选项。设定时,listen。owner和listen。忽略组。值是用户名的逗号分隔列表。
listen.acl_组字符串
listen.acl_请参见用户。值是用户组名称的逗号分隔列表。
用户字符串
运行FPM进程的Unix用户。必须设置。
组字符串
执行FPM进程的Unix用户组。如果未设置,则使用默认用户的用户组。
下午字符串
设置进程管理器如何管理子进程。可用值:静态、按需、动态。必须设置。
static-子进程的数量是固定的(pm.max_children)。
ondemand-进程在有需求时生成(在请求时启动)。与动态相反,pm。start_服务启动时启动服务器。
dynamic-子进程的数量根据以下配置动态设置:pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。
pm.max_children int
如果pm设置为static,则表示创建的子进程的数量,如果pm设置为dynamic,则表示可以创建的子进程的最大数量。必须设置。
此选项限制可以同时处理的请求数。Apache的mpm_prefork中的MaxClients的设置和普通PHP FastCGI中的PHP_FCGI_与CHILDREN环境变量的设置相似。
pm.start_servers的
设置启动时创建的子进程数。仅当pm设置为动态时才使用。默认值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。
pm.min_spare_servers int
设置空闲服务进程的最小数量。仅当pm设置为动态时才使用。必须设置。
pm.max_spare_servers int
设置空闲服务进程的最大数量。仅当pm设置为动态时才使用。必须设置。
pm.max_spawn_rate int
子进程同时生成的百分比。仅当pm设置为动态时才使用。默认值:32
pm.process_idle_timeout混合
空闲进程结束前的秒数。仅当pm设置为按需时。可用单位:s(秒)、m(分钟)、h(小时)或d(天)。默认单位:10秒。
pm.max_requests int
设置每个子进程在重新生成之前要处理的请求数。对于可能发生内存泄漏的第三方模块非常有用。如果设置为“0”,则始终接受请求。这是PHP_FCGI_MAX_等同于REQUESTS环境变量。默认值:0。
pm.status_列表字符串
接受FastCGI状态请求的地址。将创建一个新的隐藏池来单独处理请求。如果主池忙于处理执行时间较长的请求,则在执行时间较长的请求结束之前显示FPM状态页面非常有用。语法与列表指令相同。默认值:无。
pm.status_path字符串
显示FPM状态页的URI。此值必须以斜线(/)开头。如果未设置,则无法访问状态页。默认值:无。
ping.path字符串
FPM监控页面的ping URL。如果未设置,则无法访问ping页面。此页用于在外部查看FPM是否已启用并准备好响应请求。请注意,必须以斜线(/)开头。
ping.response字符串
用于定义ping请求的回复响应。将文本/平面文本返回为HTTP200。默认值:砰。
process.priority int
为工作人员设置nice(2)优先级(如果已设置)。值范围为-19(最高优先级)到20(低优先级)。默认值:未设置
process.dumpable布尔
即使进程用户或组与主进程用户不同,也设置进程可转储标志(PR_SET_DUMPABLE prctl)。可以为用户池创建进程核心转储和ptrace进程。默认值:否。PHP7.0.29、7.1.17和7.2.5或更高版本可用。
前缀字符串
用于检测路径的前缀。
request_terminate_timeout混合
为一个请求设置超时中止时间。该选项是php。ini设置的“max_execution_time”可能有助于某些特殊原因不中止的脚本。关闭时设置为0。可用单位:s(秒)、m(分钟)、h(小时)或d(天)。默认单位:s(秒)。默认值:0(禁用)。
request_terminate_timeout_track_finished bool
request_terminate_timeout中设置的超时等于fastcgi_finish_在request之后或应用程序退出并调用内部close命令时不使用。但是,即使在这种情况下,指令也可以无条件地应用超时限制。默认值:否。PHP7.3.0以后有效。
request_slowlog_timeout混合
当此设置的请求到期时,所有相应的PHP呼叫栈信息都将写入慢速日志。关闭时设置为0。可用单位:s(秒)、m(分钟)、h(小时)或d(天)。默认单位:s(秒)。默认值:0(禁用)。
request_slowlog_trace_depth int
慢速日志堆栈跟踪的深度。默认值:20。PHP7.2.0以后可以使用。
慢速日志字符串
缓慢的请求记录。默认值:#INSTALL_PREFIX#/log/php-fpm.log.slow.
rlimit_files int
设置文件打开描述符的限制。默认值:系统定义的值。
rlimit_core int
设置核心rlimit的最大限制值。可用值:“unlimited”、0或正整数。默认值:系统定义的值。
chroot字符串
启动时的chroot目录。定义的目录必须是绝对路径。如果未设置,则不使用chroot。
chdir字符串
设置启动时自动为该目录选择的启动目录。定义的目录必须是绝对路径。默认值:当前目录或根目录(如果已锁定)。
catch_workers_output布尔值
将正在运行的stdout和stderr重定向至主错误日志文件。如果未设置,则根据FastCGI规则将stdout和stderr重定向至/dev/null。默认值:无。
decorate_workers_output bool
catch_workers_启用output时,启用工作人员输出的输出装饰。默认值:是。PHP7.3.0以后可以使用。
clear_env布尔值
清除FPM工作流程的环境变量。在进程池配置文件中设置环境变量之前,请确保系统环境变量不进入FPM工作进程。默认值:是
security.limit_extensions字符串
限制FPM可以解析的脚本扩展。此设置可防止网络服务器配置错误。FPM必须限制只解析.php扩展名,以防止恶意用户使用其他扩展名执行php代码。默认值:.php.phar
apparmor_hat字符串
如果AppArmor有效,则允许更换帽子。默认值:未设置
access.log字符串
访问日志文件。默认值:未设置
access.格式字符串
访问日志的格式。默认值:“%R-%u%t”%m%r“%s”:
您还可以向运行时池传递额外的环境变量或更新PHP配置值。可以使用进程池配置文件中的以下配置参数执行此操作:
例1将环境变量传递给运行时池,设定PHP设定值:
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
PHP配置值等于php_value或php_通过flag设置,覆盖以前的值。php.ini中定义的disable_functions或disable_请注意,不会覆盖classes值,而是将新设置添加到原始值。
php_admin_value或php_admin_flag中定义的值是PHP码的ini_set()无法覆盖。
PHP设置可以通过Web服务器进行设置。
例2nginx。用conf设置PHP:
set $php_value "pcre.backtrack_limit=424242"; set $php_value "$php_value pcre.recursion_limit=99999"; fastcgi_param PHP_VALUE $php_value; fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
这些设置将作为FastCGI标头传递给php-fpm,因此不要将php-fpm绑定到可以从外网访问的地址。否则,任何人都可以更改PHP配置选项。