更改php错误报告以仅隐藏特定站点的警告


Change php error reporting to hide warnings for specific site only

想象一下/etc/apache2/sites-available提供了几个sites-enabled。(只有基于Debian的发行版才能这样工作。(

是否可以在不接触实际htdocs的情况下,将特定站点的php脚本中的warning消息静音?

通常有几个解决方案可以实现一些相关的功能:

  1. 在执行的脚本中添加error_reporting()指令,例如error_reporting(E_ERROR);
  2. .htaccess文件中设置php_flags,如下所示:php_flag display_errors off
  3. 在脚本中使用ini_set
    ini_set('display_errors', 'Off');
    ini_set('display_startup_errors', 'Off');
    error_reporting(0);
  4. @前置到引发警告或错误的函数
  5. php.ini更改为实际显示
    error_reporting = E_ALL ^ E_WARNING
    display_errors = 1

然而,这些都意味着触及htdocs或在全球范围内应用更改。假设htdocs是以只读方式安装的。如何仅针对某些网站抑制警告(或通知(?

我假设Debian/Uubuntu有a2ensite特定的配置是有原因的,我希望我能改变这些配置。示例"站点可用"配置中有一个log_level指令,但它处理记录的消息量。不是php脚本输出的消息。

php.iniapache2.confhttpd.conf中手动添加节也可以。如果可能的话。

另请参阅:

  • http://www.php.net/manual/en/function.error-reporting.php

您可以在.htaccess文件中控制php的许多配置选项,这将为您提供特定于目录的控制。一般格式为:

php_value <config_key> <config_value>

或者,对于布尔值:

php_flag <config_key> <on|off>

在你的情况下,它会是:

php_flag display_errors off