【问题标题】:cannot get PHP errors to display无法显示 PHP 错误
【发布时间】:2012-12-07 11:21:56
【问题描述】:

由于某些莫名其妙的原因,我的 PHP 不会显示错误。我一直在编写一个脚本,现在我正在测试和调试,但即使我粘贴 echo 1,我得到的只是一个白页;在第 1 行。在我的文档顶部,我有以下错误覆盖以尝试显示错误:

ini_set("display_errors", 1);
ini_set("track_errors", 1);
ini_set("html_errors", 1);
error_reporting(E_ALL);

我无法更改全局 php.ini 文件,因为这会覆盖其他实时站点的设置。

【问题讨论】:

  • 如果是托管公司,有很多类似suhosin的方法来显示错误。与他们联系,以便他们更好地指导您。
  • 它是一个非托管 vps,我有 ssh 访问权限,我相信 suhosin 已安装。我不知道如何让它为我显示错误...
  • 您有 shell 访问权限并且无法更改 PHP.ini?
  • 什么 PHP 版本? - 我之前遇到过旧版本无法正确报告解析错误的问题。最近我将一个带有const 关键字的脚本部署到一台仍在运行5.1 的机器上。打开完整的错误报告没有没有帮助,日志中没有任何内容,nada。
  • php 版本 5.3.13。我没有说我物理上无法更改 php.ini 我说我无法更改它而不影响服务器上的其他实时站点。当我调试这个脚本时,我不能在其他站点上到处弹出错误,而我应该能够为这个进程打开错误显示....

标签: php error-handling


【解决方案1】:

尝试在另一个 php 文件中包含失败的脚本,例如:

error_reporting(E_ALL);
ini_set("display_errors", 1);
include('script_that_fails.php');

编辑

简短说明:

如果主脚本包含例如语法错误并且环境关闭了错误报告,那么即使在主脚本中我们将启用错误报告,它也不会成功,因为脚本不会被执行(因为语法错误) .上述小技巧允许启用错误报告并查看错误。

【讨论】:

  • 到底是谁投了反对票,这家伙是个天才。由于运行时错误,脚本本身没有机会重置 php 值以显示错误,如上所述,将其包含在单独的文件中允许它对显示错误进行排序,然后遇到运行时问题。天才伴侣干得好
  • 标准,家伙提出了正确的答案。被 insta 否决
  • 各位大佬,太抱歉了,我一开始就答错了。只需编辑您的答案,让我再次投票。
  • 刚刚遇到同样的问题,lupatus 的回复帮助我解决了这个问题。另一位用户解释说:“......对于解析错误,在无效脚本本身中启用 error_reporting 为时已晚,因为甚至第一行都不会运行。PHP 将在看到 ini_set() 或 error_reporting() 之前中止。PHP 没有' t 逐行解释脚本......”这对我来说比 lupatus 的话更清楚。 :)
【解决方案2】:

试试这个

set_error_handler("var_dump");

此函数可用于定义您自己在运行时处理错误的方式,例如在发生严重错误时需要清理数据/文件的应用程序中,或者当您需要在某些情况下触发错误时条件(使用trigger_error())。

【讨论】:

  • 我也试过了,但还是黑屏。看起来这是一个致命的运行时错误,但我无法通过代码来寻找微小的语法错误。
  • 您可以访问 Apache 日志吗?
猜你喜欢
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多