如何隔离不需要的PHP错误消息?

时间:2011-07-01 10:22:46

标签: php apache

我正在使用wamp,需要知道为什么我会在所有浏览器中显示服务器错误消息。 (见抢)。我已经在php.ini中关闭了错误显示,并且无法在httpd.conf文件中看到任何显示这些内容的文件。关于如何解决这个问题,我将不胜感激。如果有人需要更多的代码或信息,我很乐意提供小提琴。

我使用的是php5.3.5和apache 2.0.53。

由于

enter image description here

5 个答案:

答案 0 :(得分:2)

您确定代码中的某些函数未在运行时设置display_errors吗? ini_set可用于在运行时设置该值,如此PHP文档示例所示:

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', 1);
}

echo ini_get('display_errors');
?>

答案 1 :(得分:2)

display_errors可更改PHP_INI_ALLdocumentation)。

这意味着可以使用.htaccessini_set()或正在运行的脚本中启用它。检查.htaccess文件;请注意,服务器(在默认配置中)也会检查父目录中的.htaccess文件 - 因此,如果您的站点位于/var/www/example.com/htdocs中,请检查此路径中每个目录中的.htaccess

答案 2 :(得分:1)

  

我在php.ini

中关闭了错误显示

您是否检查过您更改/检查过的php.ini文件是否是PHP正在使用的文件? (由phpinfo()显示)

更改php.ini文件后是否重新启动了网络服务器?

抓住什么?如果上述问题无法解决您的问题,请提供错误消息的文本。

答案 3 :(得分:1)

看起来你正在使用zend框架。如果您不想显示错误消息。 (无论如何关闭错误都无法修复它们)

选项1。 改变应用环境。 编辑你的bootstrap文件(在公共目录中) 找到以下行

defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));

以下

defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

选项2。 编辑application.ini(在application / configs目录下)文件。将所有phpSettings.display_errors = 1更改为phpSettings.display_errors = 0.

无论如何,我建议使用选项2。

但请记住关闭错误不会解决问题。如果你发布你的代码可能是我们可以帮助。

答案 4 :(得分:1)

来自OP的评论:

  

在php信息文件中,display_errors显示为on。在php.ini文件中,它被禁用:; display_errors = On。为什么会发生这种情况。我检查了多个ini文件,但只能看到1.

如果php.ini中的选项已注释,则表示未禁用:表示“使用默认值”。 IIRC,此处的默认值为On。将行display_errors = Off添加到php.ini。