我编辑了我的 conf.d/ssl.conf 文件并将 TransferLog 指令从:
TransferLog logs/ssl_access_log
到
TransferLog "|/usr/sbin/rotatelogs logs/ssl_access_log.%Y-%m-%d.log 60"
(我使用 60 秒进行测试)
自从进行上述更改并重新启动 httpd 后,我的原始 ssl_access_log 未更新,并且未生成新日志。我遗漏了什么?
在我的错误日志中,我收到此消息
Could not open log file 'logs/ssl_access_log.2014-05-30.log' (No such file or directory)
piped log program '/usr/sbin/rotatelogs logs/ssl_access_log.%Y-%m-%d.log 60' failed unexpectedly
答案1
rotatelogs 需要完整路径。
将 ServerRoot 添加到相对路径(即不以 或 开头的路径/
)driveletter:\
只会在 Apache 内部发生,而外部程序(例如 rotatelogs)并不知道 Apache 的 ServerRoot 变量。