nginx moodle php-fpm pm.max_children

本文介绍了一种通过调整PHP-FPM参数来优化服务器性能的方法。根据服务器内存计算得出合理的pm.max_children值,并调整了pm.start_servers等参数。通过重启服务并进行压力测试验证优化效果。

WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 8 idle, and 58 total children

WARNING: [pool www] server reached pm.max_children setting (50), consider raising it

解决办法

平均意义上r pm.max_children 可以这样计算: 总内存*80% / 80M

 6144MB / 80MB = 70+

pm.max_children = 70
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 35
pm.max_requests = 500

然后 service php-fpm restart

启动应用(ab -n 100000 -c 100 http://example.com/

ps aux|grep php-fpm|wc -l

查看即可

 

<think>我们面临的问题是在 `/etc/php-fpm.d/zabbix.conf` 配置文件中出现了未知配置项 `listen.acl_users`,导致 PHP-FPM 无法启动。根据错误日志,这个错误发生在配置文件的第7行。 ### 原因分析 1. **配置项错误**:`listen.acl_users` 可能是拼写错误,或者是该版本的 PHP-FPM 不支持这个配置项。 2. **版本兼容性**:不同版本的 PHP-FPM 支持的配置项有所不同。例如,在较早的 PHP 5.4 版本中,`listen.allowed_clients` 已被弃用[^4],而新版本可能使用不同的配置项。 3. **配置文件包含关系**:主配置文件 `/etc/php-fpm.conf` 包含 `/etc/php-fpm.d/` 目录下的所有配置文件,其中一个文件的错误会导致整个配置加载失败[^1]。 ### 解决方案 #### 步骤1:检查并修正配置项 打开配置文件: ```bash vim /etc/php-fpm.d/zabbix.conf ``` 找到第7行(根据错误提示),查看是否存在 `listen.acl_users` 配置项。考虑以下两种修正方式: **修正方案A(推荐)**: 将 `listen.acl_users` 替换为正确的配置项。根据 PHP-FPM 官方文档,控制访问权限的配置项通常是: - `listen.acl_users` 并不是标准配置项,正确的可能是 `listen.acl_groups` 或 `listen.acl_mask`。但更常见的是使用 `listen.allowed_clients`(在旧版本)或使用文件系统权限控制。 然而,在较新的 PHP 版本中(如 PHP 7.0+),访问控制通常通过 `listen.acl` 或 `listen.mode` 和 `listen.owner`/`listen.group` 来实现。如果您的 PHP 版本较旧(如 PHP 5.4),则可能不支持这些配置项。 如果您的本意是设置允许访问的客户端IP,那么正确的配置项是 `listen.allowed_clients`(但注意该配置项在 PHP 5.4 中已被弃用[^4])。例如: ```ini ; 允许的客户端IP(逗号分隔) listen.allowed_clients = 127.0.0.1 ``` **修正方案B(兼容旧版本)**: 如果您的 PHP 版本较旧(如 PHP 5.4),则建议完全移除该配置项,改为使用文件系统权限控制 Unix Socket 的访问。具体步骤: 1. 修改 `zabbix.conf` 中的 `listen` 指令,指定一个 Socket 文件: ```ini listen = /run/php-fpm/zabbix.sock ``` 2. 设置 Socket 文件的权限,使其仅允许特定用户/组访问: ```bash # 创建目录(如果不存在) mkdir -p /run/php-fpm chown nginx:zabbix /run/php-fpm/zabbix.sock # 根据实际用户修改 chmod 660 /run/php-fpm/zabbix.sock ``` 3. 在 Web 服务器(如 Nginx)配置中,设置 FastCGI 传递时使用该 Socket 并指定权限: ```nginx location ~ \.php$ { ... fastcgi_pass unix:/run/php-fpm/zabbix.sock; } ``` #### 步骤2:验证配置 在重启 PHP-FPM 之前,使用以下命令测试配置文件的正确性: ```bash php-fpm -t ``` 如果输出 `Configuration file is valid` 则表示配置正确。 #### 步骤3:重启 PHP-FPM ```bash systemctl restart php-fpm ``` #### 步骤4:检查服务状态 ```bash systemctl status php-fpm ``` ### 版本兼容性说明 - 如果您的 PHP 版本非常旧(如 PHP 5.4),建议升级到 PHP 7+ 版本,因为旧版本不仅缺少新特性,而且存在安全风险。 - 在升级 PHP 后,Zabbix 的配置可能需要调整,具体请参考 Zabbix 官方文档关于 PHP 要求的章节[^3]。 ### 相关问题 §§相关问题§§ 1. 如何查看当前系统中 PHP-FPM 的版本? 2.Nginx 中如何配置 FastCGI 以使用 PHP-FPM 的 Unix Socket? 3. 升级 PHP 版本后,Zabbix 前端需要做哪些调整? </think>### 解决 PHP-FPM "unknown entry 'listen.acl_users'" 错误方案 #### 问题分析 根据错误日志和引用文档[^1][^2][^4],该问题通常由以下原因导致: 1. **配置项不兼容**:`listen.acl_users` 在旧版 PHP-FPM(如 PHP 5.4)中无效 2. **语法错误**:配置项拼写错误或位置不当 3. **版本差异**:新配置项在旧版 PHP 中不可用 #### 解决方案 ##### 步骤 1:修正配置项(推荐方案) 编辑 `/etc/php-fpm.d/zabbix.conf`: ```bash vim /etc/php-fpm.d/zabbix.conf ``` 修改错误配置项: ```diff - listen.acl_users = user1,user2 + ; 兼容替代方案(选择一种): + ; 方案1:使用标准配置项 + listen.owner = nginx + listen.group = nginx + + ; 方案2:使用旧版语法 + listen.mode = 0660 ``` ##### 步骤 2:替代访问控制方法 若需客户端访问控制,改用以下方式: ```ini ; 基于IP的访问控制(推荐) listen.allowed_clients = 127.0.0.1,192.168.1.0/24 ; 基于文件权限控制 listen.owner = apache listen.group = zabbix listen.mode = 0660 ``` ##### 步骤 3:验证并重启服务 ```bash # 测试配置文件 php-fpm -t # 完全停止进程(引用[2]方案) pkill -9 php-fpm # 重启服务 systemctl restart php-fpm # 验证状态 systemctl status php-fpm ``` #### 配置示例(兼容旧版 PHP) ```ini [zabbix] user = zabbix group = zabbix listen = /var/run/php-fpm/zabbix.sock listen.owner = nginx listen.group = zabbix listen.mode = 0660 ; 访问控制替代方案 listen.allowed_clients = 127.0.0.1 pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8 ``` #### 关键说明 1. **版本兼容性**:`acl_users` 是 PHP 7.3+ 新增特性,旧版需用 `listen.mode` + 文件权限替代[^4] 2. **权限设置**:Socket 文件权限必须匹配 Web 服务器用户组 ```bash chown nginx:zabbix /var/run/php-fpm/zabbix.sock chmod 0660 /var/run/php-fpm/zabbix.sock ``` 3. **错误排查**:使用 `php-fpm -tt` 可显示详细配置错误位置[^2] #### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值