禁用特定目录的 error.log

禁用特定目录的 error.log

如何禁用 Apache 中针对特定目录 (phpmyadmin) 的 error.log 错误报告?

  • 在 httpd.conf 中
  • 在 .htaccess 中

答案1

为了错误日志没有内置方法可以实现这一点。你可以使用原木管道通过将日志消息传送到将忽略包含某些指定字符串的消息的某个对象来实现此目的。

定义一个管道来处理错误日志

ErrorLog "|/usr/local/bin/httpd_errors >>/var/log/apache2/error.log" 

httpd_errors 脚本的内容可以很简单

#!/usr/local/bin/perl

$|=1;

while (<STDIN>)
    {
     $ErrorMessage=$_;
     if ( $ErrorMssage !~ 'phpmyadmin' )
        {
         print $ErrorMessage;
        }
    }

这将等待消息到达,stdin并且仅当消息不包含字符串时才打印它们phpmyadmin

如果你想忽略多个错误消息,那么

#!/usr/local/bin/perl
#unbuffer stdout
$|=1;
#add the strings to match below separated by |
$filter = 'phpmyadmin|setup.php';
while (<STDIN>)
    {
     $ErrorMessage=$_;
     if ( $ErrorMessage !~ m/($filter)/  )
        {
         print $ErrorMessage;
        }
    }

相关内容