如何调试 PHP WSOD?
Posted
技术标签:
【中文标题】如何调试 PHP WSOD?【英文标题】:How do I debug a 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。跨度> 【参考方案1】:我最近遇到了类似的问题,结果发现我使用的软件包覆盖了日志记录设置,因此在某些情况下我永远看不到日志。因为您将设置放在 ini 文件中,我猜您使用的是 php.ini,所以有很多机会接近代码运行的地方正在更改设置。
我的建议是将error_reporting(E_ALL | E_STRICT);
放入导致问题的文件中,看看是否会有所改善。
【讨论】:
以上是关于如何调试 PHP WSOD?的主要内容,如果未能解决你的问题,请参考以下文章