Я размещаю несколько виртуальных хостов 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.
Можно ли избежать создания правила конфигурации для каждого виртуального хоста отдельно?
Я бы пошел по другому пути. У вас много пользователей. У каждого свой хостинг. У каждого есть свой собственный файл конфигурации vhost. Итак, точно так же, как вы указываете их значения phpadmin и т. Д., Вы могли бы уже иметь aline для записи журнала доступа.
Измените его, чтобы он тоже вращался.
Что-то вроде этого:
CustomLog "| / usr / sbin / rotatelogs / var / www / client55 / web2 / logs / access2 86400" вместе