从生产服务器中删除警告和通知

时间:2019-03-29 作者:That Brazilian Guy

我在网站上看到错误、警告和通知。这些包括文件系统路径、SQL查询和wpdb前缀,我认为向所有访问者显示这些内容并不是特别好。

I have fixed the cause of the issue, 但我想阻止这些错误消息显示在实时站点上。转弯WP_DEBUG_DISPLAY 关闭隐藏错误,但警告和通知仍然存在。我该如何隐藏这些?

2 个回复
SO网友:Ted Stresen-Reuter

正如许多人已经评论的那样,修复问题的根源比隐藏消息要好。也就是说,这些类型的消息永远不应该显示在生产服务器上,但是,因为您永远不知道,所以最好在所有服务器(本地开发机器、开发机器等)上禁用它们。

我们在wp config中使用以下设置。php禁用所有警告、通知、错误等的显示,然后使用tail -f wp-content/debug.log 要在工作时查看错误,请执行以下操作:

define( \'WP_DEBUG\', true );
define( \'WP_DEBUG_LOG\', true );
define( \'WP_DEBUG_DISPLAY\', false );
有时,通知不包含回溯,因此您无法看到导致消息的原因。请参见my answer to a similar question 因为它包括如何获取此类消息的回溯跟踪的详细信息。

如果您仍然看到警告和信息等,并且在回答中遵循了我的建议,那么很可能是一个插件或主题本身正在重新启用警告和信息的显示。

WP_DEBUG_DISPLAY 是一个常量,告诉WordPress运行以下代码:

if ( WP_DEBUG_DISPLAY ) {
    ini_set( \'display_errors\', 1 );
} elseif ( null !== WP_DEBUG_DISPLAY ) {
    ini_set( \'display_errors\', 0 );
}
此代码位于wp-includes/load.php 如果不是第一个,也是WordPress引导过程中包含的第一个文件之一。此代码出现在中的函数在中调用wp-settings.php 这是wp config之后包含的第一个文件。php。在加载和执行插件之前调用此代码。

如果插件生产者ini_set( \'display_errors\', 1 ) 在他们的代码中,它将覆盖你所拥有的wp-config.php 并继续显示PHP错误、警告、信息等。实际上,没有办法覆盖它。尝试在整个插件文件夹中搜索ini_set 看看你是否能认出罪犯。你可能还应该检查一下你的主题。

SO网友:That Brazilian Guy

正如其他人所说,修复导致错误消息显示的根本问题非常重要。

在我看来,出于各种原因,让这些错误和警告出现在开发和认证环境中也很重要,但不要出现在生产环境中。

通过将以下行放入wp-config.php:

ini_set(\'display_errors\',\'Off\');
即使有WP_DEBUG 关闭后,仍会显示一些警告。

相关推荐

Functions are causing errors

我在插件的PHP上声明一个函数。插件在每个帖子的顶部加载代码(帖子布局是插件的名称)。无法在/home/content/08/10290908/html/wp-content/plugins/post-layout/plugin.php(181):eval()\'d code:4)中重新声明vote\\u-up()(之前在/home/content/08/102908/html/wp-content/plugins/post-layout/plugin.php中声明)。php(181):第36行的eval