我托管多个 apache 虚拟主机,具有类似的结构:
- /var/www/
- domain
- documentroot
- logs
因此,我修改了规则,logrotate.d/apache2
首先
/var/log/apache2/*.log /var/www/*/logs/*.log { ... rule details ... }
现在的问题是,logrotate 不允许我旋转文件夹,因为它们根据虚拟主机由用户和组拥有(组通常有多个用户,一个用户等于一个虚拟主机)
错误信息是
错误:跳过“/var/www/default/logs/access.log”,因为父目录具有不安全的权限(它是所有人可写的或者可由非“root”的组写入)在配置文件中设置“su”指令来告诉 logrotate 应该使用哪个用户/组进行轮换。
如何配置 logrotate 以使用父文件夹中的用户和组?
VirtualHosts 在 MPM-ITK 模块下运行,以分离底层 apache/php-cgi 进程的权限。
是否可以避免为每个虚拟主机单独创建配置规则?
答案1
我会采用不同的方法。您有许多用户。每个用户都有自己的主机。每个用户都有自己的 vhost 配置文件。因此,就像您可以指定他们的 phpadmin 值等一样,您已经可以编写访问日志了。
对其进行修改,使其也能进行旋转。
像这样:
CustomLog“|/usr/sbin/rotatelogs /var/www/client55/web2/logs/access2 86400”组合