Apache/PHP 在错误页面上返回 HTTP 状态代码 200

2024-01-11

我在 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(使用前将#替换为@)

Apache/PHP 在错误页面上返回 HTTP 状态代码 200 的相关文章

随机推荐

  • 如何锁定 iPhone 某些视图控制器的方向 - Swift?

    我有 2 个视图控制器 VC1 和 VC2 VC1 目前以模态方式呈现 VC2 VC1 仅方向应为纵向 但 VC2 可以具有所有方向 问题是当我在 VC2 中并且我旋转到横向模式然后关闭时 VC1 也处于横向模式 这绝对不应该发生 NOTE
  • 单元测试实体框架验证

    我使用 IValidatableObject 为某些实体框架对象编写了一些自定义验证 并向对象添加了一些 DataAnnotations 以进行验证 我想测试验证是否满足所需的验证 确保自定义验证正常工作 并且所做的任何更改都保留这些数据注
  • Ansible:如何初始化 git bare 存储库并将其克隆到同一台机器?

    我想问一下 如何使用 Ansible 来实现这样的情况 我的主要目标是 nit git bare 存储库并将其克隆到同一台计算机 var www 我通常的步骤是 1 git init bare 在 git project name 中运行
  • 模板特化与别名模板推导区别

    我很难理解在以下情况下演绎是如何工作的 template
  • Laravel 通知 - 延迟电子邮件发送并在满足条件时取消

    我有一个应用程序 我在其中发送推送通知 如果用户登录到该应用程序 那就没问题 但是 如果他们没有登录 如果他们在 X 分钟内没有阅读通知 我想向他们发送一封电子邮件 我的方法是使用 Laravel 通知来创建邮件 广播和数据库通知 上toM
  • 构造函数可以中止实例化吗?

    我想在构造函数中进行测试 以确定当前使用给定参数实例化对象是否是一个好主意 但是我怎样才能中止构造函数并将警告返回到 new 语句呢 调用者必须在每个 新 语句之前完成此类测试吗 我认为构造函数将是一个好地方 您可以改用工厂对象 然后 这可
  • 设计可再确认的

    我想在我的用户模型中使用 devise 选项 reconfirmable 因此每当用户更改其电子邮件时 他需要通过电子邮件发送的链接进行确认 最大的问题是 电子邮件从未发送过 我的 devise 2 1 2 的设置是 用户模型 attr a
  • 错误:失败并出现错误:没有这样的项目:polymod

    我正在尝试制作一个 Friday Night Funkin mod 但是当我编译它时 出现以下错误 Error Could not find haxelib polymod does it need to be installed 所以我当
  • 允许在 Puppeteer 中的所有站点上运行 Flash

    免责声明 我知道 Flash 将在 2020 年底被放弃 但我就是无法放弃这种情况 需要在 Puppeteer 中使用 Flash 尽管我也不喜欢它 我需要抓取某些 Flash 网站并截取它们的屏幕截图 以供以后进行编程比较 我可以提供一个
  • 尽管调用了flush(),Servlet 仍缓冲响应

    我们有一个系统 客户端发出 HTTP GET 请求 系统在后端进行一些处理 压缩结果 然后将其发送给客户端 由于处理可能需要一些时间 因此我们将其作为ZipOutputStream包裹着response getOutputStream 然而
  • 在 iOS-7 中按需隐藏和显示左侧导航栏按钮

    我使用故事板添加了左侧导航栏按钮 但我希望它在我第一次加载屏幕时隐藏 然后为了回应其他事情 我希望它能显示出来 导航栏有一个隐藏后退按钮的方法 但没有隐藏 显示左按钮的方法 有一个简单的方法可以做到这一点吗 或者我是否必须使用两种方法 隐藏
  • fs.readFile异常

    尝试运行一个异步打开一堆文件并读取其内容的脚本 我在哪里收到错误fs readFile的回调没有数据 但文件在那里 并且当前没有被其他任何东西打开 完全困惑了 错误是 错误 好的 打开 D Workspace fasttrack publi
  • 执行 ansible include_tasks 直到满足特定条件(类似于 while 直到循环)

    我想执行包含任务列表 直到满足特定条件为止 我没有固定循环 但执行取决于条件 下面是示例播放 任务列表剧本tasks yml name inc test var test var set fact test var test var int
  • 在 pyqt4 中,如何从现有窗口打开新窗口?

    我想从 pyqt 中的现有窗口打开新窗口 我的源代码有两个功能 功能之一 单击按钮时 打开文件对话框 另一个功能 当单击另一个按钮时 新窗口 打开 但是当我想要新窗口时 出现错误消息 回溯 最近一次调用最后一次 文件 C Users Han
  • 在 Visual Studio 中执行 git Reset 后如何删除传入的提交? (删除远程提交)

    I am trying to use the Visual Studio team explorer which is under Git However when I click 这我可以返回到以前的版本 但它不能 因为有传入的提交再次返
  • 如何在flutter中使用showTimePicker作为Widget?

    我希望用户选择日期和时间 因为有日期时间选择器对话框 但是 有没有一种方法 我可以在某些颤振小部件上持久显示日期时间并像任何其他小部件一样使用 Container child showTimePicker context context i
  • TMEMO 中的多行添加

    我有一个 Delphi XE2 项目 有 2 个按钮 Button1 Button2 和 1 个备忘录 Memo1 我的要求是 在 Button1 上单击某些文本将写入第一行 第 1 行 中的 Memo1 如果我再次单击 Button1 一
  • 在页面刷新时加载随机 CSS

    我想知道使用 Javascript 在页面刷新时调用随机 css 文件的最佳方法是什么 非常感谢 var link link 0 http site com css style1 css link 1 http site com css s
  • pandas 基于不完全匹配的时间戳进行合并

    有哪些方法可用于合并时间戳不完全匹配的列 DF1 date start time employee id session id 01 01 2016 01 01 2016 06 03 13 7261824 871631182 DF2 dat
  • Apache/PHP 在错误页面上返回 HTTP 状态代码 200

    我在 CentOS 7 上运行 PHP 5 4 当有一个 php 文件抛出错误 异常或语法错误 时 它返回 HTTP 200 状态代码而不是 500 当PHP遇到错误时如何让它返回500服务器错误 我尝试查看其他 Stackoverflow