我有一个虚拟专用服务器使用Suse Linux 10.3。
Apache 2 / PHP 5.2.6已自动设置。
当我看到这个有效的 PHP 文件在浏览器中,它正确显示:
<?php
echo 'this is test';
?>
然而,当我看到这个无效的 PHP 文件我期望它会显示错误,但是它什么也没显示,空白页,无来源:
<?php
nnn 'this is test';
?>
通过 phpinfo() 我发现“已加载php.ini配置文件”位于/etc/php5/apache2/php.ini
,在该文件中我发现了以下未注释的行:
error_reporting = E_ALL
这告诉我它应该显示所有错误和警告。
我还需要做什么才能让 PHP 显示错误?
答案1
通常,Web 应用程序会将错误记录到 Apache 错误日志中。这是您的服务器或虚拟主机部分的相关 ErrorLog 设置中指定的文件。PHP 应用程序会将日志发送到那里,但它们并不是最容易访问或最有用的日志;您的日志可能会被其他错误所掩盖。可以将 PHP 配置为记录到单独的日志文件中,但这与记录到 Apache 错误日志没有太大区别。您可以使用以下命令将 Apache 配置为将错误记录到浏览器
display_errors = On
在您的 php.ini 中。这样,日志行就会出现在您的浏览器中。您真的不应该在生产系统上使用此选项。如果您需要在同一系统上混合生产和开发应用程序,您可以使用:
ini_set("display_errors","On");
位于开发 php 文件的顶部。
error_reporting 选项改变 PHP 报告的内容。
但你可以做得更好。调试是一个 PHP 扩展,它添加了一些非常有用的 PHP 开发功能,例如堆栈跟踪、分析和代码覆盖率。
答案2
display_errors = On
?