我在CentOS 7上运行PHP 5.4,当有一个php文件引发错误(异常或语法错误)时,它将返回HTTP 200状态代码,而不是500。

当PHP遇到错误时,如何获取500服务器错误?

我尝试过查看其他Stackoverflow帖子,它们似乎都指向围绕返回自己的500错误代码的解决方案(我认为这本身就是PHP的正常行为,而无需我手动触发http header ,因为根据此信息:PHP emitting 500 on errors - where is this documented?)它也指出Xdebug是一个可能的问题,但是即使在没有Xdebug的情况下重建服务器,我的问题仍然存在。

我的相关设置是:

  • display_errors:在
  • display_startup_errors:在
  • error_reporting:-1(这将报告所有错误)
  • 最佳答案

    根据a PHP bug report,此处描述的行为归因于display_errors的设置方式。



    因此,该问题的答案是:

  • 启用display_errors时,它将始终返回200
  • 当display_errors关闭时,它将返回500
  • 10-08 04:46