我有两个相同服务器的不同实例(一个用于开发,一个用于部署),独立构建,但基本相同(相同的操作系统、相同的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_LOG
和WP_DEBUG_DISPLAY
以及改变什么display_errors
设置为viaini_set(...)
但似乎没有什么不同。
我可以指定我想要输出的地方吗error_log(...)
调用转到其中一个日志?(我希望输出总是转到Apacheerror.log
因为我想使用这些额外的信息。)
最合适的回答,由SO网友:IpsRich 整理而成
如本页其他地方所述,在我的情况下,解决方案只是重置PHP的error_log
背景我通过在/var/www/html/wp-config.php
:
ini_restore(\'error_log\');
重要的一点是:我最后把这句话说对了,因为在各种
define(\'WP_DEBUG...\', ...);
线
幸亏Rarst 和bynicolas 感谢他们的建议,这帮助我找到了这个解决方案。
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
将覆盖它)。
你的第二个案子听起来很奇怪。我希望错误会转到一个或另一个目标,但不会转到两个单独的日志文件。可能是在运行时发生了某些更改。如果不亲自动手进行故障排除,是不可能的。