是否可以让 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 configtest
和apachectl graceful
将消除大多数(但不是全部)此类事故。