加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 18:07:58 所属栏目:PHP教程 来源:网络整理
导读:我正在开发一个 PHP应用程序,它使用HTTP响应代码进行通信以及响应主体.所以这是PHP代码中的典型场景: try { doSomething();}catch (Exception $e) { header('HTTP/1.1 500 Internal Server Error');} …而客户端中的典型代码如下所示: switch(responseCode
我正在开发一个 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_file和auto_prepend_file指令来放置错误处理代码.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读