我们把Apache设置为在RedHat框中以www用户身份运行,但是它的日志是以root用户身份编写的,因为进程本身以root用户身份运行。 看来运行的最佳方式是1)以非root用户的身份运行rotatelogs,2)将日志放在为用户提供适当权限的地方。
可以这样做吗? 我在这里没有看到一个方法:
https://httpd.apache.org/docs/2.2/programs/rotatelogs.html
在文件所有权方面不需要做任何事情。 红帽将他们的系统以合理的默认值来运送。 数百万的Web服务器每天都运行它们拥有的httpd日志。 最好的做法是在这种情况下保持良好的状态。
默认情况下,使用logrotate旋转RH系统上的httpd日志。 这是每天以root用户身份运行的,所以不存在所有权问题。 您可以通过编辑logrotateconfiguration(/etc/logrotate.conf,/etc/logrotate.d/httpd)来调整日志的旋转方式。
如果您正在使用pipe道日志,那么您将需要configuration自己的cron作业以root用户身份运行。
这是一切正常的东西。
调用它的确切方法将取决于本地configuration(例如,在RHEL 6上默认禁用apache ),但是可以使用sudo , runuser等,如下所示:
ErrorLog "|sudo -u apache rotatelogs -f /var/log/httpd/errors.%Y-%m-%d.log 86400"