为什么注释掉 httpd.conf 中的 ErrorLog 不会停止记录错误?

为什么注释掉 httpd.conf 中的 ErrorLog 不会停止记录错误?

我有一个 CentOS Linux 的 VPS 帐户。

这两个文件每 24 小时就会填满 20 GB 的硬盘:

该统计文件:

/home/httpd/tanguay.info/stats/tanguay.info-error_log

此目录中的某个文件看起来似乎有不同的名称,但其大小已增长到 5+ GB:

/home/admin/__processed_stats

我现在想做的就是关闭 apache 统计记录这样我的硬盘就不会被填满并破坏我的邮件、ftp 等。

因此在文件中:

/etc/httpd/conf/httpd.conf

我注释掉了以下行:

#ErrorLog logs/error_log

然后我删除了上面的两个大文件,重新启动了虚拟机,发现第一个文件(tanguay.info-error_log)已经重新创建并且再次增大。

那么我应该在哪里关闭 Apache 中的日志记录?

(或者 Apache 甚至没有使用这个 httpd.conf 文件作为其配置文件,它保存在哪里?)

答案1

错误日志中记录了两件事:apache 本身的错误和任何 CGI 或 PHP 应用程序的 stderr 副本。您可以使用 LogLevel 选项减少来自 Apache 的错误,但这通常只占日志记录的很小一部分。大部分是 404。您可能会发现其中大部分是由您的应用程序生成的。

显而易见的做法是查看错误日志中的内容并解决问题。如果它每天向您提供数 GB 的日志,则表明它试图告诉您一些事情。也许可以用指向日志片段的链接来更新您的答案。这应该可以让我们为您提供更详细的回复。

(顺便说一句,您只需重新加载 apache 即可使其应用任何配置更改。没有必要重新启动整个服务器。)

答案2

真的,你需要做大卫,如果您获取了那么多日志,显然会存在问题。但是,如果您确实想转储所有日志,那么在任何 UNIX 机器上,您都可以将错误日志文件符号链接到 /dev/null,从而有效地将它们转储到 UNIX 黑洞中。

ln -s /dev/null /path/to/error.log

在 Centos VPS 上,如果您使用 httpd rpm,那么它肯定应该从 /etc/httpd/conf/httpd.conf 加载其配置,但是它可能在您的 ErrorLog 行之后包含其他文件或指令,请检查httpd -S以确保稍后没有额外的 vhosts 加载配置。

答案3

该日志 ( tanguay.info-error_log) 显然不是由该配置行 ( logs/error_log) 生成的。httpd.conf 中是否有另一个 ErrorLog,/etc/httpd/conf.d 中是否有其他内容,或者其他地方是否有其他内容? httpd -S可以提供帮助。

相关内容