【问题标题】:How do I debug a PHP WSOD?如何调试 PHP WSOD?
【发布时间】:2011-04-24 03:02:09
【问题描述】:

我偶尔会收到一个令人费解的死机白屏 PHP 错误 - 即使使用以下设置,也不会显示或记录任何内容:

ini_set("error_reporting",E_ALL); ini_set("display_errors",true); ini_set("log_errors",true); ini_set("display_startup_errors",true); ini_set("html_errors",false); ini_set("error_log","/var/log/php_error_log");

我在某处读到输出缓冲或内存限制错误可能导致没有错误输出,但之前(例如)我发现 WSOD 仅仅是由 __autoload() 查找丢失的类文件引起的。

有没有人找到让这些错误可见的方法?我讨厌注释掉代码块。

谢谢

【问题讨论】:

  • 除非依赖于应用程序,否则不要将设置专门添加到您的应用程序中,您应该修改 php.ini 文件并重新启动您的 Web 服务器,因为很多时候它不会覆盖 ini。跨度>

标签: php debugging wsod


【解决方案1】:

我最近遇到了类似的问题,结果发现我使用的软件包覆盖了日志记录设置,因此在某些情况下我永远看不到日志。因为您将设置放在 ini 文件中,我猜您使用的是 php.ini,所以有很多机会接近代码运行的地方正在更改设置。

我的建议是将error_reporting(E_ALL | E_STRICT); 放入导致问题的文件中,看看是否会有所改善。

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 2011-07-22
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-08-19
    • 2011-07-20
    • 2015-07-07
    相关资源
    最近更新 更多