如果出现PHP错误,如何让Apache发送500?

前端之家收集整理的这篇文章主要介绍了如果出现PHP错误,如何让Apache发送500?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个 PHP应用程序,它使用HTTP响应代码进行通信以及响应主体.所以这是PHP代码中的典型场景:
try {
    doSomething();
}
catch (Exception $e) {
    header('HTTP/1.1 500 Internal Server Error');
}

…而客户端中的典型代码如下所示:

switch(responseCode) {
     case 200 :
         // all fine
         // ....
     case 500 :
         // trouble!
 }

这很酷,只要PHP代码中捕获到每个错误.

问题:如果由于PHP代码中的任何原因发生未被捕获的错误或语法错误等无法捕获的错误,Apache将发送200 OK.但我不想说500内部服务器错误.也许每个.htaccess左右.

当然,您可以使用 write your own error handler.但是,并非所有PHP错误都可以捕获.例如,语法错误甚至不允许您的代码运行,包括错误处理程序.

要处理可捕获的错误,可以使用auto_append_fileauto_prepend_file指令来放置错误处理代码.

不可捕获的错误是一个不同的问题.如果PHP运行为Fast CGI,它将自动为您生成500状态代码.但是,您可能正在通过其他一些SAPI(例如Apache模块)运行PHP.对此不知道,抱歉. (如果我发现了什么,我会报告.)

猜你在找的PHP相关文章