我在 CentOS 7 上运行 PHP 5.4,当有一个 php 文件抛出错误(异常或语法错误)时,它返回 HTTP 200 状态代码而不是 500。
当PHP遇到错误时如何让它返回500服务器错误?
我尝试查看其他 Stackoverflow 帖子,它们似乎都指向返回您自己的 500 错误代码的解决方案(我相信这应该是 PHP 本身的正常行为,而不需要我手动触发 http 标头,因为根据此信息:PHP 发出 500 错误 - 这在哪里记录? https://stackoverflow.com/questions/3075355/php-emitting-500-on-errors-where-is-this-documented)它还指出 Xdebug 是一个可能的问题,但即使我在没有 Xdebug 的情况下重建服务器,我的问题仍然存在。
我的相关设置是:
- 显示错误:开
- 显示启动错误:打开
- error_reporting: -1(这会导致报告所有错误)
根据PHP 错误报告 https://bugs.php.net/bug.php?id=50921,此处描述的行为是由于 display_errors 的设置方式造成的。
[2010-02-03 19:03 世界标准时间][电子邮件受保护] /cdn-cgi/l/email-protection
之所以需要关闭显示错误,是因为显示的错误会生成输出,而输出会导致标头被发送出去。恐怕我们对此无能为力。
所以问题的答案是:
- 当display_errors打开时它会返回
200
总是。
- 当 display_errors 关闭时,它将返回
500
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)