Interserver托管WordPress站点PHP警告持续生成error_log如何彻底关闭
解决方案
1. 修正WordPress核心配置(优先级最高)
WordPress自带的调试参数会覆盖全局PHP配置,这是你之前修改不生效的最常见原因。
编辑站点根目录的wp-config.php文件,找到调试相关配置段,替换为以下内容:
// 完全关闭WordPress调试模式 define( 'WP_DEBUG', false ); define( 'WP_DEBUG_DISPLAY', false ); define( 'WP_DEBUG_LOG', false ); // 强制覆盖PHP错误报告规则,仅记录致命错误 @ini_set( 'error_reporting', E_ERROR ); @ini_set( 'display_errors', 0 ); // 若要完全关闭所有错误日志,可将下方值改为Off @ini_set( 'log_errors', On );
注意:上述代码需要放在/* That's all, stop editing! Happy publishing. */注释行的上方。
2. 修正PHP配置文件写法
你之前在php.ini和user.ini中写入的error_reporting(0)是PHP代码语法,不符合ini配置文件的规范,正确写法如下:
在cPanel自动生成的user.ini(FastCGI模式下优先级更高)或php.ini文件中写入以下内容:
error_reporting = E_ERROR display_errors = Off log_errors = On
修改后等待5分钟(user.ini存在默认缓存周期)再验证效果。
3. 可选.htaccess配置
如果前两步配置不生效,且你的服务器使用Apache/LiteSpeed架构,可在站点根目录.htaccess文件顶部添加以下内容:
php_flag display_errors Off php_value error_reporting 1
如果添加后出现站点500错误,说明主机商禁止了通过.htaccess覆盖PHP配置,直接删除上述代码即可。
4. 验证配置生效
在站点根目录新建phpinfo.php文件,写入以下内容:
<?php phpinfo(); ?>
访问该文件,搜索error_reporting和display_errors字段,确认本地值匹配你设置的规则,验证完成后立即删除该文件避免安全隐患。
额外排查建议
如果仍持续生成警告类日志,可排查近期安装/更新的主题、插件,部分代码可能硬编码了错误报告级别覆盖全局配置,可通过逐一禁用插件切换默认主题的方式定位问题源。
内容的提问来源于stack exchange,提问作者Mohib Salahuddin Ayubi
相关产品推荐
相关产品推荐

