想象一下,可以从/etc/apache2/sites-available
sites-enabled
一些sites-enabled
。 (只有基于Debian的发行版才能这样工作。)
是否有可能从一个特定的站点的 PHP脚本静音warning
消息,而不触及实际的htdocs
?
通常有几个解决scheme来实现相关的:
error_reporting()
指令,例如error_reporting(E_ERROR);
到执行的脚本。 .htaccess
文件中设置php_flags,如下所示: php_flag display_errors off
在脚本中使用ini_set
:
ini_set('display_errors', 'Off'); ini_set('display_startup_errors', 'Off'); error_reporting(0);
将@
预先标记为引发警告或错误的函数。
php.ini
实际上说 error_reporting = E_ALL ^ E_WARNING
display_errors = 1
但是,这些都意味着触及全球或者有所改变。 想象一下, htdocs
是只读的。 我将如何压制某些网站的警告(或通知)?
我假设Debian / Ubuntu有a2ensite
特定的configuration,有一个原因,我希望我可以改变这些。 示例“站点可用”configuration中有一个log_level
指令,但是这处理了logging的消息数量。 不是由PHP脚本输出的消息。
手动添加部分在php.ini
或apache2.conf
或httpd.conf
也将工作。 如果可能。
也可以看看:
如果您有权访问apache vhostconfiguration,当然您也可以在sites-available目录中的虚拟主机中使用php_flag指令。 这样,他们只适用于这个虚拟主机。
在虚拟主机中添加这样的内容:
<IfModule mod_php5.c> php_admin_flag display_errors off </IfModule>
编辑:
如果你只想显示实际的错误,你可以使用php指令error_reporting
和一个整数值来描述你想要显示的错误级别的types:
<IfModule mod_php5.c> php_admin_flag display_errors on php_admin_value error_reporting 22517 </IfModule>
这相当于一个设置
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_DEPRECATED;
在php.ini中。 例如这里有更多可能的值:
错误报告值计算器:
http://www.bx.com.au/tools/ultimate-php-error-reporting-wizard
没有.htaccess或全局应用configuration没有办法做到这一点。 Apache不能在根文件夹(htdocs)之外“查看”文件,而.htaccess文件只能在站点文件夹中使用。 php_flag在.htaccess之外也不起作用。
所以基本上,没有一些修改或.htaccess文件是不可能的。
我补充说:
<IfModule mod_php5.c> php_admin_flag display_errors on php_admin_value error_reporting 30711 </IfModule>
到/ etc / apache2 / sites-enabled / work,那工作得很好。
是的,我知道我应该修改这些通知,但是我正在写一个旧的脚本,需要回到这个脚本,因为现在这已经解决了我的问题,并且正在寻找这个脚本。 希望这有助于某人。