我在 Ubuntu 12.10 上使用 PHP 和 Apache。由于某种原因没有向浏览器显示错误,我无法弄清楚。
我的php.ini
文件中有以下内容:
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
display_startup_errors = On
log_errors = On
我也很确定我已经通过验证编辑了正确的 ini 文件php_ini_loaded_file()
。我还可以通过在我的脚本中执行以下操作来验证值是否正确设置:
echo ini_get("display_errors"); // Outputs 1
echo ini_get("display_startup_errors"); // Outputs 1
echo ini_get("log_errors"); // Outputs 1
echo ini_get("error_reporting"); // Outputs -1
我已经尝试了这些设置的所有可能组合(并在每次更改后重新启动 Apache),但它只是没有输出错误。我也没有ini_set
在脚本中的任何地方使用。它只能从 ini 文件中设置。
为什么不显示错误的任何想法?
更新:
事实证明它显示了一些错误,但不是全部。
echo 'hello''; // Shows syntax error
trigger_error("E_USER_WARNING", E_USER_WARNING); // shows error
trigger_error("E_USER_NOTICE", E_USER_NOTICE); // shows error
trigger_error("E_USER_ERROR", E_USER_ERROR); // Doesn't show error
原来问题出在PEBKAC和
Content-type
标头的组合上。做的时候:然后浏览器需要一个有效的 XML 文档。当存在特定错误时,即使已发送内容,也会导致文档根本不显示在浏览器中。查看页面源代码显示错误确实与所有其他代码一起成功发送到浏览器。我的问题是我假设没有任何回声,因为我看到的都是白色的。