我应该告诉WordPress哪里应该写入ERROR_LOG消息?

时间:2016-09-12 作者:IpsRich

我有两个相同服务器的不同实例(一个用于开发,一个用于部署),独立构建,但基本相同(相同的操作系统、相同的WordPress版本、相同的内容等)。

然而,我对配置感到困惑:在我看来,它们的配置是一样的(只是部署服务器被告知不要向浏览器写入错误/警告)。

两种配置都指定ini_set( \'error_log\', \'/var/log/wp-debug.log\' ); 而该文件确实是由两者创建的;但是,在一台服务器上,任何使用error_log(...) 转到/var/log/wp-debug.log 而在另一台服务器上,这样的输出将转到/var/log/apache2/error.log (尽管PHP错误和警告转到/var/log/wp-debug.log).

我尝试过使用WP_DEBUG, WP_DEBUG_LOGWP_DEBUG_DISPLAY 以及改变什么display_errors 设置为viaini_set(...) 但似乎没有什么不同。

我可以指定我想要输出的地方吗error_log(...) 调用转到其中一个日志?(我希望输出总是转到Apacheerror.log 因为我想使用这些额外的信息。)

2 个回复
最合适的回答,由SO网友:IpsRich 整理而成

如本页其他地方所述,在我的情况下,解决方案只是重置PHP的error_log 背景我通过在/var/www/html/wp-config.php:

ini_restore(\'error_log\');
重要的一点是:我最后把这句话说对了,因为在各种define(\'WP_DEBUG...\', ...); 线

幸亏Rarstbynicolas 感谢他们的建议,这帮助我找到了这个解决方案。

SO网友:Rarst

在WP方面,它所做的唯一处理是将日志设置为WP_CONTENT_DIR . \'/debug.log\' 如果WP_DEBUG_LOG 已启用(在生产环境中作为公共位置非常糟糕)。如果我没记错的话,这个常量的早期实现允许自定义路径,但现在不再是这样了。

以我的经验来看ini_set( \'log_errors\', 1 ); ini_set( \'error_log\', \'/path\' ) 在里面wp-config.php 应足够(如果不启用WP_DEBUG_LOG 将覆盖它)。

你的第二个案子听起来很奇怪。我希望错误会转到一个或另一个目标,但不会转到两个单独的日志文件。可能是在运行时发生了某些更改。如果不亲自动手进行故障排除,是不可能的。

相关推荐

即使WP_DEBUG设置为FALSE也会发出警告

链接https://vreqenz-stream.de/shop/ 在某些设备上打开而在其他设备上打开时引发警告<我认为这可能是cahce的问题,但我已经从WP rocket和浏览器中清除了缓存。只是为了获取信息,我正在使用Plesk web管理工具下面是我的WP\\U配置设置ini_set(\'log_errors\',\'On\'); ini_set(\'display_errors\',\'Off\'); ini_set(\'error_reporting\', E_ALL )