我在WordPress插件中生成的错误存在问题,这使我的开发变得困难。
如果我在普通的PHP文件中触发错误,如下所示:
trigger_error("an error occurred", E_USER_ERROR);
它工作正常,我将得到页面上显示的错误。但是,如果我在插件的代码中尝试相同的操作,则服务器会在浏览器中生成500错误,并且不会显示错误。
此外,它还不会在插件代码中记录PHP-FPM或Nginx日志文件中的任何错误。这使得开发非常困难,因为当我收到错误时,我没有任何信息可以继续。
由于这在独立PHP中运行良好,我假设它必须与WordPress相关。
我在wordpress中启用了调试功能。我的堆栈如下:
文件所有权为user:www-data
。目录是775,文件是664
PHP conf文件中启用了错误,我可以看到独立PHP页面的错误,在WordPress插件PHP页面发生错误的情况下,它正好发生在服务器上。
这令人非常沮丧,因为我无法理解为什么会这样。有没有人能够帮助我解决这个问题?
修改
这里要更清楚的是我在wp-config中启用调试的功能:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
其他调试值默认为true,因此这应该是我所需要的。
奇怪的是我刚刚注意到error_log()在WordPress文件中没有做任何事情,而trigger_error()会导致500错误。
这感觉就像某种基于许可的错误,但我不确定是什么。我真的需要一些帮助,因为在没有任何错误文本的情况下,在这种情况下开发实际上是不可能的。
答案 0 :(得分:0)
Wordpress默认禁用错误报告。您可以通过在wp-config.php中将WP_DEBUG
常量设置为true来启用wordpress调试模式。
在这里您可以找到更多详细说明: https://codex.wordpress.org/Debugging_in_WordPress
答案 1 :(得分:0)
问题是由插件" Wordpress CSV导入器"引起的。我不知道为什么,但删除它使调试再次工作。