background image

加轻松,请把这个值设为

 On:

 
display_errors = On 
  

error_reporting 变量的默认值是 E_ALL。这个设置会显示从不良编码实践到无害提

示到出错的所有信息。

E_ALL 对于开发过程来说有点太细,因为它在屏幕上为一些小事

(例如变量未初始化)也显示提示,会搞糟浏览器的输出。我只想看到错误和不良编码实践,
但是不想看到无害的提示。所以,请用以下值代替

 error_reporting 的默认值:

 
error_reporting = E_ALL & ~E_NOTICE 
  重新启动

 Apache,就全部设置好了。接下来,将学习如何在 Apache 上做同样的事。

  服务器上的错误报告
  依赖于

 Apache 正在做的工作,在 PHP 中打开错误报告可能没法工作,因为在计算

机上可能有多个

 PHP  版本。有时很难区分  Apache  正在使用哪个 PHP  版本,因为 

Apache 只能查看一个 php.ini 文件。不知道 Apache 正在使用哪个 php.ini 文件配置自
己是一个安全问题。但是,有一种方法可以在

 Apache 中配置 PHP 变量,从而保证设置了

正确的出错级别。
  而且,最好知道如何在服务器端设置这些配置变量,以否决或抢占

 php.ini 文件,从

而提供更高级别的安全性。
  在配置

 Apache 时,应该已经接触过 <apache2-install-dir>/conf/httpd.conf 中 

http.conf 文件中的基本配置。
  要做在

 php.ini 文件中已经做过的事,请把下列各行添加到 httpd.conf,覆盖任何 

php.ini 文件:
 
php_flag  display_errors        on 
php_value error_reporting       2039 
    这 会 覆 盖 在

  php.ini  文 件 中 为   display_errors  已 经 设 置 的 标 志 , 以 及 

error_reporting  的 值。 值   2039  代 表   E_ALL  &amp;  ~E_NOTICE 。如 果愿 意采 用 
E_ALL,请把值设为 2047。同样,还是要重启 Apache。
  接下来,要在服务器上测试错误报告。
  测试错误报告
  如果启动了错误报告,会节约许多时间。

PHP 中的错误会指向代码中的错误。请创建一

个简单的

 PHP 文件 test.php,并像清单 1 所示一样定义它。

清单

 1. 一个生成错误的简单 PHP

 
< php 
print("The next line generates an error.<br>"); 
printaline("PLEASE "); 
print("This will not be displayed due to the above error."); 
 > 
  第一个

 print() 语句会向 Web 浏览器显示它的内容。但是第二个语句会生成错误并在 

Web 页面上显示。这造成最后一个 print() 语句不起作用,如图 1 所示。

 1. 生成错误

  现在开启了错误报告!接下来,用

 print 语句帮助调试应用程序。

  介绍

 print 语句