【发布时间】:2015-05-12 10:26:06
【问题描述】:
我在 CentOS 7 上运行 PHP 5.4,当 php 文件抛出错误(异常或语法错误)时,它返回 HTTP 200 状态代码而不是 500。
当 PHP 遇到错误时如何让它返回 500 服务器错误?
我已经尝试查看其他 Stackoverflow 帖子,它们似乎都指向有关返回您自己的 500 错误代码的解决方案(我认为这应该是 PHP 本身的正常行为,而无需我手动触发 http标头,根据此信息:PHP emitting 500 on errors - where is this documented?) 它还指出 Xdebug 是一个可能的问题,但即使我在没有 Xdebug 的情况下重建服务器,我的问题仍然存在。
我的相关设置是:
- display_errors:开启
- display_startup_errors:开启
- error_reporting: -1(这会导致报告所有错误)
【问题讨论】:
-
您为什么要这样做? Apache 错误和 php 错误不是一回事
-
但他可能会以 PHP 自动响应
500的方式处理任何 PHP 端异常。 -
@Dagon 我说的是 apache 提供的 http 状态码。我正在尝试获取 PHP 错误触发 500 状态代码的行为。
-
是的,但为什么呢?似乎是个糟糕的主意
-
@Dagon 你能解释一下为什么你认为这很糟糕吗? 500 个状态码意味着什么,就像 200 个一样。返回 200 的损坏页面在调试过程中没有多大帮助,而且我们也不希望搜索引擎在应用暂时出错时索引错误页面文本。
标签: php apache error-code