我有任何问题,我的服务器日志文件达到9 GB在一个月内,由于WordPress的警告。我想停止WordPress在服务器错误日志中生成的所有警告。我该怎么做?
m2xkgtsf1#
WordPress或PHP的问题是,默认情况下,error_reporting设置可以在运行时被任意覆盖。在WordPress中,您会发现许多插件,主题甚至WP Core都设置了error_reporting。因此,即使你在wp-b.php中覆盖它,它也不会有任何好处。当使用PHP < 8.0时,如果你想让你的日志没有错误,我发现的唯一方法是在php.ini中使用这两个指令的组合:
error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT disable_functions = error_reporting
要限制到特定路径并禁用所有错误报告,请执行以下操作:
[PATH=/var/www/site] error_reporting = 0 disable_functions = error_reporting
如果不排除E_reporting,您将收到由于error_reporting函数被禁用而生成的警告。注意:disable_functions接受逗号分隔的函数名列表。如果你使用的是php-fpm,你可以这样设置:
disable_functions
php_admin_value[disable_functions] = error_reporting
当使用PHP >= 8.0时,禁用error_reporting函数会生成一个致命错误。WordPress核心有partially fixed this,但代码中还有其他地方,以及主题/插件中仍然期望启用error_reporting函数。这意味着在运行WordPress时禁用此函数的唯一安全方法是在wp-config.php中定义一个虚拟函数,例如。
error_reporting
wp-config.php
if ( !function_exists('error_reporting')) { function error_reporting() {} }
目前error_reporting函数也在wp-admin/load-styles.php中使用,它不包括wp-config.php,所以你必须为这个文件添加一个补丁或你自己的包含。如果你不能控制php.ini或php-fpm配置,那么你就不走运了。
wp-admin/load-styles.php
xghobddn2#
如果只是一两个页面产生了问题(假设这是一个PHP页面),您可以在导致问题的PHP页面的顶部添加一行
ini_set('error_reporting', 0);
但mevius是对的,最好是找到并解决错误,而不是关闭它,否则可能会有一个错误,你需要注意,将不知道UT
2o7dmzc53#
旧版本的WordPress会使用PHP命令error_log记录数据库错误,而不管所有设置如何。禁用此功能的唯一方法是在代码中注解掉该命令。
ct3nt3jp4#
如果您无法编辑php.ini文件,您可以将以下内容添加到.htaccess文件中以关闭错误记录(如果您的虚拟主机支持此功能):
php_flag log_errors off
这将关闭错误日志记录,它会更好地解决导致警告的问题当然.但你可以使用这个作为一个临时解决方案,以防止巨大的日志文件,而你试图修复问题.
4条答案
按热度按时间m2xkgtsf1#
WordPress或PHP的问题是,默认情况下,error_reporting设置可以在运行时被任意覆盖。在WordPress中,您会发现许多插件,主题甚至WP Core都设置了error_reporting。
因此,即使你在wp-b.php中覆盖它,它也不会有任何好处。
当使用PHP < 8.0时,如果你想让你的日志没有错误,我发现的唯一方法是在php.ini中使用这两个指令的组合:
要限制到特定路径并禁用所有错误报告,请执行以下操作:
如果不排除E_reporting,您将收到由于error_reporting函数被禁用而生成的警告。
注意:
disable_functions
接受逗号分隔的函数名列表。如果你使用的是php-fpm,你可以这样设置:
当使用PHP >= 8.0时,禁用
error_reporting
函数会生成一个致命错误。WordPress核心有partially fixed this,但代码中还有其他地方,以及主题/插件中仍然期望启用error_reporting
函数。这意味着在运行WordPress时禁用此函数的唯一安全方法是在wp-config.php
中定义一个虚拟函数,例如。目前
error_reporting
函数也在wp-admin/load-styles.php
中使用,它不包括wp-config.php
,所以你必须为这个文件添加一个补丁或你自己的包含。如果你不能控制php.ini或php-fpm配置,那么你就不走运了。
xghobddn2#
如果只是一两个页面产生了问题(假设这是一个PHP页面),您可以在导致问题的PHP页面的顶部添加一行
但mevius是对的,最好是找到并解决错误,而不是关闭它,否则可能会有一个错误,你需要注意,将不知道UT
2o7dmzc53#
旧版本的WordPress会使用PHP命令error_log记录数据库错误,而不管所有设置如何。
禁用此功能的唯一方法是在代码中注解掉该命令。
ct3nt3jp4#
如果您无法编辑php.ini文件,您可以将以下内容添加到.htaccess文件中以关闭错误记录(如果您的虚拟主机支持此功能):
这将关闭错误日志记录,它会更好地解决导致警告的问题当然.但你可以使用这个作为一个临时解决方案,以防止巨大的日志文件,而你试图修复问题.