WordPress站点健康显示PHP memory limit与Max input time为-1,修改配置不生效怎么办
问题对应解决方案
首先明确参数含义:PHP memory limit设为-1确实代表PHP进程无内存使用上限,Max input time设为-1代表PHP接收请求输入时无超时限制。你遇到的wp-config配置不生效,核心原因是PHP配置存在优先级差异,优先级从高到低为:服务器核心配置 > PHP pool配置(PHP-FPM模式) > 站点Web服务配置 > .htaccess > wp-config.php,高优先级设置的参数无法被低优先级的配置文件覆盖,你之前的排查遗漏了服务器层级的配置项。
排查修复步骤
- 如果你使用PHP-FPM模式运行站点,检查对应站点的PHP pool配置文件(常见路径为
/etc/php/[对应PHP版本号]/fpm/pool.d/[站点标识].conf),查找是否存在php_admin_value[memory_limit] = -1、php_admin_value[max_input_time] = -1配置项,通过php_admin_value设置的参数禁止被下层配置覆盖,直接修改此处的数值为目标值后,执行systemctl restart php[版本号]-fpm重启服务即可生效。 - 如果你使用Apache mod_php模式运行站点,检查站点的VirtualHost配置段,查找是否存在
php_value memory_limit -1、php_value max_input_time -1配置,修改为目标值后重启Apache服务生效。 - 确认wp-config.php配置位置是否正确:内存限制定义语句
define( 'WP_MEMORY_LIMIT', '40M' );必须放在/* That's all, stop editing! Happy publishing. */注释行之前,放置在注释后会导致配置不生效。 - 若你使用的是托管类WordPress主机,部分主机商默认会在服务器层级锁定这两个参数为-1,不允许用户自行修改,可联系主机商确认配置权限。
生效验证方法
可在站点根目录新建phpinfo.php文件,写入内容<?php phpinfo(); ?>,访问该文件后搜索对应参数名,核对Local Value是否匹配你设置的数值,验证完成后立即删除该文件,避免泄露服务器配置信息引发安全风险。
内容的提问来源于stack exchange,提问作者user6790215
相关产品推荐
相关产品推荐

