如何让PHP在遇到错误时显示Apache's 500错误页面,而不是空白页面?


How do I get PHP to display Apache's 500 error page when it encounters an error, instead of a blank page?

我为404,403等自定义错误文档设置了apache指令,以及500。但是,PHP在遇到致命错误时,会显示一个空白页面,而不是触发apache 500响应。

我不需要显示错误细节或类似的东西,因为它们目前在apache error_logs中正确记录,所以我不认为它与error_reporting或display_errors有任何关系,这两个设置都是正确的。

这里有一些类似的问题在SO,但还没有找到一个答案,做什么我需要的。基本上,在类似语法错误的情况下,我希望看到apache 500错误页面,而不是空白页面。这不是PHP可以捕获和处理的东西,因为语法错误是不可捕获的。

这似乎已经在php 5.2.4中修补/修复,如下所示:http://www.mail-archive.com/internals@lists.php.net/msg28557.html

但是,我们使用的是PHP 5.2.17,目前升级是不可行的。有没有人有任何解决方案/解决方案,可能会在apache触发500错误的任何PHP语法/致命错误?

不确定这是否有效:注册一个关机处理程序并显示适当的页面。当发生致命错误时,应该调用shutdown处理程序。确保在脚本的顶部注册了这个处理程序。