无法在 Chrome 中的 PHP 中启用错误报告

Posted

技术标签:

【中文标题】无法在 Chrome 中的 PHP 中启用错误报告【英文标题】:Can't enable error reporting in PHP within Chrome 【发布时间】:2013-09-05 23:09:57 【问题描述】:

我正在 Linux 虚拟机中运行的 LAMP 服务器上测试 php。在this post 之后,我将以下内容放在我的 PHP 脚本的开头以启用错误报告:

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

我还尝试在 php.ini 文件中启用错误报告,如 here 所述:

display_errors = On
display_startup_errors = On
error_reporting = -1

但是,我仍然在 Chrome 的调试器中收到 500 Internal Server Error,而不是正确的错误消息:

/var/log/apache2/error.log 中发现的实际错误消息是:

PHP Parse error: syntax error, unexpected '$userID' (T_VARIABLE) in /path/to/file

如何在 Chrome 中正确启用错误报告?

【问题讨论】:

你能给我们看看 jsFiddle 中的<? phpinfo(); ?> 输出吗? (查看页面源码,粘贴到jsFiddle中,保存并发布链接) @AmalMurali 你指的是哪一页?出于隐私原因,我无法发布我的实际代码。 【参考方案1】:

那是 Apache(服务器)响应并且(可能)与 php 无关。 它只是说明您的服务器配置有问题。检查/var/log/apache2/ 文件夹中的access.logerror.log。 这可能是由于/etc/apache2/apache2.conf/var/www/.htaccess 中的配置错误(如果有的话)。

我还会检查 list.php 是否存在于 webroot 文件夹中,以及文件夹和文件是否可读(在 cli 中使用 chmod -R 755 /var/www 使所有文件和文件夹可读)

【讨论】:

我在 Google App Engine 上收到 500 内部服务器错误,即使一切正常。该页面也可以正常加载,直到它必须运行 PHP 脚本,这表明它不是服务器配置问题。事实上,查看错误日志后,确实是 PHP 语法错误!我现在会接受你的回答,但我真的在寻找一种直接在 Chrome 中显示错误的方法。【参考方案2】:

您应该检查您是否处于开发环境而不是生产环境。根据主机,它可能在配置文件中。这是一个例子:

app.engine=php
app.engine.version=5.6
http.firewall=none
environment=development

这样你就可以看到你的错误了!完成后,您可以设置 environment=production,如果错误仍然存​​在,用户将看到 ERROR 500。

【讨论】:

以上是关于无法在 Chrome 中的 PHP 中启用错误报告的主要内容,如果未能解决你的问题,请参考以下文章

无法在 OpenCart (PHP) 中禁用错误​​报告

我可以在 chrome 扩展中启用源映射吗?

我可以在 chrome 扩展中启用源映射吗?

未显示 PHP 错误

解析 PHP 文件时在浏览器中启用错误

未启用 PHP 中的套接字传输“ssl”