You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Zabbix 7安装配置阶段PHP参数错误问题求助

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这一项,确认是不是你修改的那个文件。如果路径不对,那你之前改的都是无效的。
  • 检查参数的设置格式是否正确
    别小看这个细节,很多人栽在这里:

    • post_max_size必须带单位M,比如要写成16M,如果只写16,PHP会默认当成字节,那肯定远小于要求的16M
    • max_execution_timemax_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

火山引擎 最新活动