PHP配置php-fpm启动参数及配置详解
php-fpm是什么?
PHP-FPM
(FastCGI Process Manager for PHP)是 PHP
官方针对 FastCGI
协议的 PHP
处理程序管理器,是基于 FastCGI
的进程管理器,可以独立于 Web 服务器(如 nginx
、apache
)运行。PHP-FPM
可以更好的管理 PHP 请求,提高服务器处理并发能力,是 PHP 处理程序的重要选择。
php-fpm常见配置项解析
pool配置参数
php-fpm 可以配置多个 pool,每个 pool 都有自己的配置,以下是常见的配置项:
- listen:监听地址(默认 ip:port 或者是 socket 形式)
- listen.allowed_clients:允许访问的 IP 地址白名单
- user:执行进程的用户
- group:执行进程的用户组
- pm:php-fpm 管理工作进程的方式
以下是 pm
值的不同取值:
- dynamic:动态管理,由 pm.max_children、pm.start_servers 等参数控制
- ondemand:按需管理,由 pm.process_idle_timeout、pm.max_requests 等参数控制
- static:静态,由 pm.max_children 单独控制
其他相关配置:
- pm.max_children:子进程的最大数量
- pm.start_servers:在启动时,通常 pm.min_spare_servers 子进程被创建,并且一直运行到有空闲池中的空间为止(默认值:5),用于动态模式。
- pm.min_spare_servers:保证有空闲进程可用于立即处理请求,防止启动子进程时等待较长时间(默认值:2),用于动态模式。
- pm.max_spare_servers:保证有空闲进程可用于立即处理请求,但是限制最多可以创建多少个进程(默认值:8),用于动态模式。
- pm.process_idle_timeout:在 static 和 ondemand 模式下使用,控制终止空闲进程的时间(默认值:10s)
- pm.max_requests:每个子进程相对应的请求数,达到该值会杀掉该子进程,然后由管理进程创建一个新的子进程(默认值:0,表示不限制)
全局配置参数
php-fpm 运行在特定用户权限下,这个用户需要具备执行 PHP 脚本的权限,在环境变量和进程切换时进行 ,可以对全局配置进行调整,例如:
- pid:进程文件存放路径(默认值:/run/php-fpm/php-fpm.pid)
- error_log:错误日志输出路径
- syslog.facility:通过 syslog 输出的日志的 facility(默认是 daemon)
- syslog.ident:syslog 标识符(默认是 php-fpm 开头)
更多配置项
在 php.ini 文件中可以设置许多 PHP 程序运行的详细配置项,可以对与实现 PHP 的 Web 服务器进行修改,例如:
- memory_limit:控制 PHP 程序使用内存的上限
- post_max_size:POST 数据的最大值
- upload_max_filesize:上传文件的最大值
- max_execution_time:单个 PHP 页面的超时时间
示例1:创建一个名为 test
的 PHP pool
以下为示例配置:
[test]
listen=/run/php-fpm/test.sock
user=webuser
group=webusergroup
pm=dynamic
pm.max_children=50
pm.start_servers=5
pm.min_spare_servers=2
pm.max_spare_servers=8
pm.process_idle_timeout=10s
pm.max_requests=0
- 将该文件保存为
/etc/php-fpm.d/test.conf
。 - 确保监听地址处于 listen.allowed_clients 白名单范围内。
- 重启 PHP-FPM 进程。
示例说明:
该示例中我们创建了一个名为 test
的 PHP pool 并定义了以下参数:
- 用 socket 形式监听的地址:
/run/php-fpm/test.sock
。 - 运行 PHP 代码的操作系统用户为
webuser
,操作系统组为webusergroup
。 - 使用动态管理方式,最多有 50 个子进程,启动时创建 5 个子进程。
- 最少保证至少有 2 个空闲进程可用于处理请求,并限制最大空闲进程数量为 8 个。
- 在 10 秒内没有请求时,杀死空闲进程,可用于 ondemand 模式。
- 不限制子进程请求数量(0)。
示例2:修改 upload_max_filesize 配置
在 php.ini
文件中修改以下变量:
upload_max_filesize=20M
示例说明:
该示例中我们将 upload_max_filesize
的值更改为 20M。这表示客户端上传到 Web 服务器的文件大小不能超过 20MB。
结语
以上就是关于 PHP 配置 php-fpm
启动参数及配置详解的攻略。PHP-FPM 是我们优化 PHP 性能的一个重要手段,掌握了这些配置项的含义和使用,可以帮助我们更高效、更稳定地运行 PHP 应用程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php配置php-fpm启动参数及配置详解 - Python技术站