Zabbix 7安装配置阶段PHP参数错误问题求助
问题描述:
我在Debian Bookworm上部署Zabbix 7,搭配PHP 8.2版本,但是在配置向导阶段一直碰到这几个PHP参数不符合要求的错误:
Minimum required size of PHP post is 16M (configuration option "post_max_size").
Minimum required limit on execution time of PHP scripts is 300 (configuration option "max_execution_time").
Minimum required limit on input parse time for PHP scripts is 300 (configuration option "max_input_time").
我已经修改了这三个路径下的php.ini文件:
- apache2/php.ini
- fpm/php.ini
- cli/php.ini
并且重启了Zabbix和Apache服务,但错误还是存在,请问我哪里没做到位?
我的排查建议:
兄弟,我之前装Zabbix的时候也踩过几乎一样的坑,给你几个实际有用的排查点:
先确认你改的是PHP实际加载的配置文件
Debian下不同PHP运行模式(SAPI)对应的php.ini路径可能和你想的不一样,别瞎改文件白忙活:- 查看CLI模式加载的配置文件:执行
php -i | grep "Loaded Configuration File",输出的路径就是CLI真正用的php.ini - 查看Web端(不管是Apache mod_php还是FPM)的配置文件:在你的Zabbix前端目录(比如
/usr/share/zabbix)下新建一个info.php文件,内容就一行:<?php phpinfo(); ?>,然后用浏览器访问这个文件(比如http://你的服务器IP/zabbix/info.php),找到Loaded Configuration File这一项,确认是不是你修改的那个文件。如果路径不对,那你之前改的都是无效的。
- 查看CLI模式加载的配置文件:执行
检查参数的设置格式是否正确
别小看这个细节,很多人栽在这里:post_max_size必须带单位M,比如要写成16M,如果只写16,PHP会默认当成字节,那肯定远小于要求的16Mmax_execution_time和max_input_time直接写数字300就行,不要加单位,确保数值不小于300
重启正确的服务,别漏了PHP-FPM
如果你用的是PHP-FPM(现在很多部署都是FPM模式),只重启Apache和Zabbix Server是没用的,PHP-FPM的配置只有重启它自己才会生效:sudo systemctl restart php8.2-fpm然后再重启Apache让它重新连接FPM:
sudo systemctl restart apache2最后重启Zabbix Server确保服务状态正常:
sudo systemctl restart zabbix-server排查是否有局部配置覆盖全局设置
有时候Apache的虚拟主机配置或者网站根目录下的.htaccess文件里,会用php_value指令覆盖全局php.ini的设置,比如:php_value post_max_size 8M php_value max_execution_time 60这种情况下,全局的设置会被覆盖,你需要找到这些局部配置,把对应的参数改成符合Zabbix要求的数值。
验证参数是否真正生效
改完之后可以用命令验证CLI的参数:php -r "echo 'post_max_size: ' . ini_get('post_max_size') . PHP_EOL; echo 'max_execution_time: ' . ini_get('max_execution_time') . PHP_EOL; echo 'max_input_time: ' . ini_get('max_input_time') . PHP_EOL;"Web端的话直接看刚才创建的
info.php里对应的参数值,确认三个参数都已经达到要求的标准。
备注:内容来源于stack exchange,提问作者Martin Moore




