.htaccess 在服务器日志文件WordPress中禁用所有PHP警告

w8rqjzmb  于 2023-10-23  发布在  WordPress
关注(0)|答案(4)|浏览(138)

我有任何问题,我的服务器日志文件达到9 GB在一个月内,由于WordPress的警告。我想停止WordPress在服务器错误日志中生成的所有警告。
我该怎么做?

m2xkgtsf

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,你可以这样设置:

php_admin_value[disable_functions] = error_reporting

当使用PHP >= 8.0时,禁用error_reporting函数会生成一个致命错误。WordPress核心有partially fixed this,但代码中还有其他地方,以及主题/插件中仍然期望启用error_reporting函数。这意味着在运行WordPress时禁用此函数的唯一安全方法是在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配置,那么你就不走运了。

xghobddn

xghobddn2#

如果只是一两个页面产生了问题(假设这是一个PHP页面),您可以在导致问题的PHP页面的顶部添加一行

ini_set('error_reporting', 0);

但mevius是对的,最好是找到并解决错误,而不是关闭它,否则可能会有一个错误,你需要注意,将不知道UT

2o7dmzc5

2o7dmzc53#

旧版本的WordPress会使用PHP命令error_log记录数据库错误,而不管所有设置如何。
禁用此功能的唯一方法是在代码中注解掉该命令。

ct3nt3jp

ct3nt3jp4#

如果您无法编辑php.ini文件,您可以将以下内容添加到.htaccess文件中以关闭错误记录(如果您的虚拟主机支持此功能):

php_flag log_errors off

这将关闭错误日志记录,它会更好地解决导致警告的问题当然.但你可以使用这个作为一个临时解决方案,以防止巨大的日志文件,而你试图修复问题.

相关问题