无法在 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.log
和error.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 中启用错误报告的主要内容,如果未能解决你的问题,请参考以下文章