即使“无法打开日志”也要让 apache 运行

即使“无法打开日志”也要让 apache 运行

是否可以让 apache 不依赖于日志的存在?

如果日志文件无法打开,apache 会在重启甚至重新加载后退出。这是一种非常令人不快的行为,因为在生产服务器上操作虚拟主机时需要非常小心。有必要这样吗?有趣的是,如果虚拟主机中只是出现语法错误,apache 不会退出。

例子:

$ sudo /etc/init.d/httpd reload

来自日志:

[Thu Jan 10 19:25:02 2013] [notice] SIGHUP received.  Attempting to restart
(2)No such file or directory: httpd: could not open error log file /var/www/patron/logs/error_log.
Unable to open logs

并且 apache 不再运行 :(。

答案1

你在这里找错了方向。你已指示 Apache 保留日志,但它无法做到这一点,因此它应该退出。

这里真正的问题是缺乏控制/测试。在触及生产配置之前,请在暂存环境中测试这些更改。这样做除了无数其他问题外,还可以解决此类问题。

如果您确实必须在生产服务器上直接修改配置,请确保在重新加载配置之前执行配置测试。使用apachectl configtestapachectl graceful将消除大多数(但不是全部)此类事故。

相关内容