Назад | Перейти на главную страницу

Подстановочный знак Logrotate со многими пользователями и виртуальными хостами

Я размещаю несколько виртуальных хостов 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" вместе