怎样才可以得到PHP的出错信息?php运行时不显示错误信息。如何屏蔽php出错信息?
我现在是 PHP初学者,
做了一个PHP文件,在浏览器里打开时什么都不显示,我怎样才能知道它错在哪里呢?
有没有PHP的调试工具?debug怎么用?
Best Answer
如果你安装好了,那么在C:windows下有个php.ini,应该改这个
如果没安装好,那么把php.ini-dist改为php.ini 复制到C:windows下面
要显示错误信息,处理改设置,还要该IE设置
工具/internet选项/高级/拉到最下面有个显示友好的http错误信息,去掉勾.
PHP 的错误报告
php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样(。在调试 PHP 应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值:
display_errors = Off
error_reporting = E_ALL
通过在 php.ini 文件中搜索它们,可以发现这两个变量当前的默认值。display_errors 变量的目的很明显 —— 它告诉 PHP 是否显示错误。默认值是 Off。但是,要让开发过程更加轻松,请把这个值设为 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 & ~E_NOTICE。如果愿意采用 E_ALL,请把值设为 2047。同样,还是要重启 Apache。
php运行时不显示错误信息。如何屏蔽php出错信息?
问题补充: 最近学习php,我用的是网上下载的AppServ运行环境,我在网上查找资料说要修改php.ini文件,我只在php5文件夹下看到了php.ini-dist文件,用记事本打开,把display_error=on怎么还是不能显示出错信息啊?
如果你安装好了,那么在C:windows下有个php.ini,应该改这个
如果没安装好,那么把php.ini-dist改为php.ini 复制到C:windows下面
要显示错误信息,处理改设置,还要该IE设置
工具/internet选项/高级/拉到最下面有个显示友好的http错误信息,去掉勾
In the productive environment, it is suggested that you set display_errors=Off for security reasons. however, if you don't wanna change php.ini, an alternative way to do the same thing is to add 'error_reporting(0);' at the top of your specific program.