【问题标题】:PHP error handling has disappeared since upgrading to mountain lion升级到山狮后,PHP 错误处理消失了
【发布时间】:2012-09-25 16:58:44
【问题描述】:

我最近安装了山狮,当我从 XAMPP 启动 apache 时出现错误,要求我禁用 Web 共享以使 XAMPP 工作。经过一番研究,我发现了一个命令可以打开与山狮捆绑在一起的 apache。这有效,XAMPP 的 apache 启动了。

但是我注意到的下一件事是我不再得到错误处理。

我正在使用fuelphp,但是当我的代码出现问题时,我得到的不是错误消息,而是一个空白页,上面写着NO DATA RECEIVED :S。

例如,从行尾删除;,会导致上述与可读错误消息相反的结果。

我检查了有错误报告的框架 index.php 文件

error_reporting(E_ALL);
ini_set('display_errors', 1);

谁能给我一步一步的解释如何让我的错误报告回来:'(

【问题讨论】:

  • 您可能希望在 php.ini 中进行更改。
  • 如何在我的 XAMP 设置中找到 php.ini,我以前从未对其进行过更改:(
  • 我找到了,但它说:display_errors = On
  • 您的“故意破坏”脚本中的phpinfo() 是否显示要关闭的错误? php 设置可以在各种地方被覆盖。重要的是 php 所说的在相关地点生效,phpinfo 将报告。
  • 显示错误为 on,error_reporting 为 30719

标签: php error-handling xampp osx-mountain-lion


【解决方案1】:

我在 Max OS X 上也有同样的问题。这绝对是服务器配置问题,因为完全相同的代码在 Windows 和多个 Linux 环境中运行良好。

我的 Apache/PHP 是通过 XAMPP 安装在 Mac 上的。其他遇到相同问题的人,如果您也使用 XAMPP,请在 cmets 中告诉我。我想追踪导致此问题的确切服务器配置。

目前,我有一个 hacky 解决方法:

fuel/core/bootstrap.php 中,将其添加到 register_shutdown_function 的顶部

$last_error = error_get_last();
if (is_array($last_error) && \Fuel::$env == \Fuel::DEVELOPMENT && in_array($last_error['type'], array(4, 1, 256, 64))) {
    exit();
}

不过,奇怪的是,它是否能捕捉到错误是偶然的。所以有时我得刷新几次。

哦,您必须将环境设置为 DEVELOPMENT。这是为了停止在生产部署站点中泄漏错误。

编辑::MAMP(撰写本文时的最新版本 2.1.2)似乎不受此问题的影响。 XAMPP 1.8.1-beta1 也没有。所以你也可以尝试使用这些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 2012-12-17
    • 2012-07-26
    • 2019-03-27
    • 2018-09-22
    • 2015-08-22
    相关资源
    最近更新 更多