FastCGI 进程管理器(FPM)配置项目列表
FPM 使用类似 php.ini 语法的 php-fpm.conf 和进程池配置文件。
php-fpm.conf 全局配置段
pid
string
PID 文件的位置。默认为空。
error_log
string
错误日志的位置。默认:#INSTALL_PREFIX#/log/php-fpm.log。 如果设置为 "syslog",日志将不会写入本地文件,而是发送到 syslogd。
log_level
string
错误级别。可用级别为:alert(必须立即处理),error(错误情况),warning(警告情况),notice(一般重要信息),debug(调试信息)。默认:notice。
syslog.facility
string
设置何种程序记录消息,默认值:daemon。
syslog.ident
string
为每条信息添加前缀。 如果在同一台服务器上运行了多个 FPM 实例,可以修改此默认值来满足需求。默认值:php-fpm。
emergency_restart_threshold
int
如果子进程在 emergency_restart_interval 设定的时间内收到该参数设定次数的 SIGSEGV 或者 SIGBUS退出信息号,则FPM会重新启动。0 表示“关闭该功能”。默认值:0(关闭)。
emergency_restart_interval
mixed
emergency_restart_interval 用于设定平滑重启的间隔时间。这么做有助于解决加速器中共享内存的使用问题。可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:s(秒)。默认值:0(关闭)。
process_control_timeout
mixed
设置子进程接受主进程复用信号的超时时间。可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:s(秒)。默认值:0(关闭)。
process.max
int
Fork 的最大 FPM 进程数。使用动态管理进程数时,此设计可以控制在一个进程池内的全局进程数量。 使用需谨慎。默认值:0。
process.priority
int
设置 master 进程的 nice(2) 优先级(如果设置了此值)。 可以是 -19(最高优先级)到 20 (更低优先级)。 默认值:不设置。
daemonize
boolean
设置 FPM 在后台运行。设置“no”将 FPM 保持在前台运行用于调试。默认值:yes。
rlimit_files
int
设置 master 进程的打开文件描述符 rlimit 数。
rlimit_core
int
设置 master 进程最大 core 的 rlimit 尺寸。 默认值:0。
events.mechanism
string
设置 FPM 使用的事件机制。 可用以下选项:select、pool、epoll、kqueue (*BSD)、port (Solaris)。 默认值:不设置(自动检测)
systemd_interval
int
使用 systemd 集成的 FPM 时,设置间歇秒数,报告健在通知给 systemd。 设置为 0 表示禁用。默认值:10。
运行配置区段
在FPM中,可以使用不同的设置来运行多个进程池。 这些设置可以针对每个进程池单独设置。
listen
string
设置接受 FastCGI 请求的地址。可用格式为:'ip:port','port','/path/to/unix/socket'。每个进程池都需要设置。
listen.backlog
int
设置 listen(2) 的 backlog 最大值。“-1”表示无限制。默认值:-1。
listen.allowed_clients
string
设置允许连接到 FastCGI 的服务器 IPV4 地址。等同于 PHP FastCGI (5.2.2+) 中的 FCGI_WEB_SERVER_ADDRS 环境变量。仅对 TCP 监听起作用。每个地址是用逗号分隔,如果没有设置或者为空,则允许任何服务器请求连接。默认值:any。 PHP 5.5.20 和 5.6.4起,开始支持 IPv6 地址。
listen.owner
string
如果使用了 Unix 套接字,表示它的权限。在 Linux 中必须设置读/写权限,以便用于 WEB 服务器连接。 在很多 BSD 派生的系统中可以忽略权限允许自由连接。 默认值:运行所使用的用户和组,权限为 0660。
listen.group
string
参见 listen.owner。
listen.mode
string
参见 listen.owner。
listen.acl_users
string
当系统支持 POSIX ACL(Access Control Lists)时,可以设置使用此选项。 当设置了的时候,将会忽略 listen.owner 和 listen.group。 值是逗号分割的用户名列表。 PHP 5.6.5 起可用。
listen.acl_groups
string
参见 listen.acl_users。 值是逗号分割的用户组名称列表。 PHP 5.6.5 起可用。
user
string
FPM 进程运行的Unix用户。必须设置。
group
string
FPM 进程运行的 Unix 用户组。如果不设置,就使用默认用户的用户组。
pm
string
设置进程管理器如何管理子进程。可用值:static,ondemand,dynamic。必须设置。
static - 子进程的数量是固定的(pm.max_children)。
ondemand - 进程在有需求时才产生(当请求时才启动。与 dynamic 相反,在服务启动时 pm.start_servers 就启动了。
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
in
设置启动时创建的子进程数目。仅在 pm 设置为 dynamic 时使用。默认值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。
pm.min_spare_servers
int
设置空闲服务进程的最低数目。仅在 pm 设置为 dynamic 时使用。必须设置。
pm.max_spare_servers
int
设置空闲服务进程的最大数目。仅在 pm 设置为 dynamic 时使用。必须设置。
pm.process_idle_timeout
mixed
秒数,多久之后结束空闲进程。 仅当设置 pm 为 ondemand。 可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:10s。
pm.max_requests
int
设置每个子进程重生之前服务的请求数。对于可能存在内存泄漏的第三方模块来说是非常有用的。如果设置为 '0' 则一直接受请求,等同于 PHP_FCGI_MAX_REQUESTS 环境变量。默认值:0。
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
检测路径时使用的前缀。
request_terminate_timeout
mixed
设置单个请求的超时中止时间。该选项可能会对 php.ini 设置中的 'max_execution_time' 因为某些特殊原因没有中止运行的脚本有用。设置为 '0' 表示 'Off'。可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:s(秒)。默认值:0(关闭)。
request_slowlog_timeout
mixed
当一个请求该设置的超时时间后,就会将对应的 PHP 调用堆栈信息完整写入到慢日志中。设置为 '0' 表示 'Off'。可用单位:s(秒),m(分),h(小时)或者 d(天)。默认单位:s(秒)。默认值:0(关闭)。
slowlog
string
慢请求的记录日志。默认值:#INSTALL_PREFIX#/log/php-fpm.log.slow。
rlimit_files
int
设置文件打开描述符的 rlimit 限制。默认值:系统定义值。
rlimit_core
int
设置核心 rlimit 最大限制值。可用值:'unlimited',0 或者正整数。默认值:系统定义值。
chroot
string
启动时的 Chroot 目录。所定义的目录需要是绝对路径。如果没有设置,则 chroot 不被使用。
chdir
string
设置启动目录,启动时会自动 Chdir 到该目录。所定义的目录需要是绝对路径。默认值:当前目录,或者根目录(chroot时)。
catch_workers_output
boolean
重定向运行过程中的 stdout 和 stderr 到主要的错误日志文件中。如果没有设置,stdout 和 stderr 将会根据 FastCGI 的规则被重定向到 /dev/null。默认值:无。
clear_env
boolean
为 FPM worker 进程清除环境变量。 在进程池配置文件里设置环境变量前,阻止任意系统的环境变量进入 FPM worker 进程。 自 PHP 5.4.27、 5.5.11 和 5.6.0 起。 默认值: Yes
security.limit_extensions
string
限制 FPM 允许解析的脚本扩展名。 此设置可以预防 web 服务器配置的错误。 应当限制 FPM 仅仅解析 .php 扩展名,阻止恶意用户使用其他扩展名运行 php 代码。 默认值: .php .phar
access.log
string
Access log 文件。 默认值:不设置
access.format
string
access log 的格式。 默认值: "%R - %u %t \"%m %r\" %s"
还可以在为一个运行池传递附加的环境变量,或者更新 PHP 的配置值。可以在进程池配置文件中如下面的配置参数来做到:
Example #1 给运行池传递环境变量和设置 PHP 的配置值
env[HOSTNAME] = $HOSTNAMEenv[PATH] = /usr/local/bin:/usr/bin:/binenv[TMP] = /tmpenv[TMPDIR] = /tmpenv[TEMP] = /tmpphp_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.comphp_flag[display_errors] = offphp_admin_value[error_log] = /var/log/fpm-php.www.logphp_admin_flag[log_errors] = onphp_admin_value[memory_limit] = 32M
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 的设定。
Example #2 在 nginx.conf 中设定 PHP
set $php_value "pcre.backtrack_limit=424242"; set $php_value "$php_value \n pcre.recursion_limit=99999"; fastcgi_param PHP_VALUE $php_value;fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Caution
由于这些设定是以 FastCGI 标头传递给 php-fpm,php-fpm 不应绑定到外部网可以访问的地址上,否则任何人都能修改 PHP 的配置选项了。参见 listen.allowed_clients。
FastCGI 进程管理器(FPM)配置项目列表相关推荐
- php 脚本 fpm缓存,PHP生命周期及fpm(FastCGI进程管理器)的运作方式
PHP在web方式中如何改了文件就立即生效的,重要的几个概念:sapi: 可以简单的理解为php引擎对外的一个统一接口,使得php可以和外部程序进行交互 php的生命周期中关键四个调用: MINT - ...
- FastCGI 进程管理器(FPM)
FastCGI 进程管理器 FPM(FastCGI 进程管理器)是 PHP FastCGI 的主要实现,包含大部分对高负载网站有用的功能. 它的功能包括: 支持平滑停止/启动的高级进程管理功能: 进程 ...
- 配置FPM(FastCGI 进程管理器)
配置FPM FPM 使用类似 php.ini 语法的 php-fpm.conf 和进程池配置文件. php-fpm.conf 全局配置段 pid string PID 文件的位置.默认为空. erro ...
- Nginx运行FastCGI程序(ngx_http_fastcgi_module模块、fcgi库、spwan-fcgi进程管理器)
一.什么是CGI 通用网关接口(Common Gateway Interface.CGI)描述了客户端和服务器程序之间传输数据的一种标准,可以让一个客户端,从网页浏览器向执行在网络服务器上的程序请求数 ...
- learn.log - 进程管理器fastcgi原理及fastcgi_param详解
一. 何为FastCGI? in all : 快-不崩溃-优雅 fast-strong-high FastCGI官方站点:http://www.fastcgi.com.common gateway ...
- php 进程管理,PHP 进程管理器 PHP-FPM
php-fpm是什么 php-fpm是PHP的一个进程管理器.php下面的众多work进程皆有php-fpm进程管理器管理. php-fpm的工作原理 php-fpm全名是PHP FastCGI进程管 ...
- php-fpm进程的用户组,一文看懂PHP进程管理器php-fpm
php-fpm是什么 php-fpm是PHP的一个进程管理器.php下面的众多work进程皆有php-fpm进程管理器管理. php-fpm的工作原理 php-fpm全名是PHP FastCGI进程管 ...
- php进程原理_PHP进程管理器php-fpm的工作原理
PHP进程管理器php-fpm的工作原理 发布时间:2020-07-21 17:46:39 来源:亿速云 阅读:133 作者:小新 今天小编给大家分享的是PHP进程管理器php-fpm的工作原理,相信 ...
- php5启动子,看懂PHP进程管理器php-fpm
php-fpm是什么 php-fpm是PHP的一个进程管理器.php下面的众多work进程皆有php-fpm进程管理器管理. 相关学习推荐:PHP编程从入门到精通 php-fpm的工作原理 php-f ...
最新文章
- python中用于标识字符串的定界符_Python合集之Python数据类型(二)
- 根据 UserAgent 判断网页是在浏览器、或在微信、或在APP中
- Egret之JSZip高级应用:压缩JS
- [PLL][PM]锁相环模拟相位解调
- 计算机导论上机模拟,计算机导论模拟考试题6份完整版.doc
- 什么是嵌入式视觉、行业应用、目前挑战
- 记录一些移动开发的英文单词发音
- Python - re - 正则表达式 - 怎么用
- 参考文献标准格式总结
- 阿里云添加邮箱解析 实现邮件收发
- 面向对象的封装,继承,多态。
- 浅谈我对python学习的心得
- 苹果xr十大隐藏功能_别再说苹果“悬浮球”功能不好用,隐藏的实用小技巧,每天用得上...
- 十三、Linux目录结构
- 学python能赚钱吗-利用python能怎么挣钱
- 菜鸟程序员的第一次写作经历
- UE4 快速找到打包失败的原因
- revit二次开发lookup和addin的详细安装教程
- 项目管理是一个什么样的职位,具体都做些什么事情?
- 图片水印如何去掉?这三个办法学起来