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

Добавить файлы журнала в / var / log / apache2

Я пытаюсь сохранить журналы фреймворка Lumen php в /var/log/apache2/ вместо его установки dir / storage / logs / folder.

На стороне Lumen все в порядке, так как я могу писать файлы журнала в / tmp / нормально.

То, что я действительно не могу понять даже после полдня исследований, испытаний и чесания головы, вот что:

Итак .... как получается, что Apache может записывать свои файлы журналов ??

Разъяснение этой загадки может привести к решению моей Главная проблема. Я действительно хочу хранить журналы фреймворка Lumen вне каталога установки Lumen, поскольку он заменяется процессом непрерывной интеграции.

Я много исследовал эту тему и основы, но не смог найти ответа.

Краткий ответ: потому что родительский процесс Apache всегда запускается и принадлежит пользователю root. Следовательно, он может набирать статистику и писать в /var/log/apache2/.

root     30089  0.0  0.4 518800 29604 ?        Ss   Jul05   0:09 /usr/sbin/apache2 -k start
www-data 13076  0.0  0.2 521180 18036 ?        S    00:05   0:00  \_ /usr/sbin/apache2 -k start
www-data 13077  0.0  0.2 521180 18036 ?        S    00:05   0:00  \_ /usr/sbin/apache2 -k start
www-data 13079  0.0  0.2 521180 18036 ?        S    00:05   0:00  \_ /usr/sbin/apache2 -k start
www-data 13080  0.0  0.2 521180 18036 ?        S    00:05   0:00  \_ /usr/sbin/apache2 -k start
www-data 13081  0.0  0.2 521180 18036 ?        S    00:05   0:00  \_ /usr/sbin/apache2 -k start
www-data 13288  0.0  0.2 521180 18036 ?        S    00:17   0:00  \_ /usr/sbin/apache2 -k start

Вероятно, стоит просто избегать /var/log/apache2 и оставьте это для процесса apache2 (только). Лично я бы создал новый каталог вроде /var/log/lumen/ (Кстати: вы не обязаны использовать /var/log/ область для ведения журнала), принадлежащая данному родительскому процессу, который вы хотите регистрировать. При желании настройте logrotate.d/ аналогично apache2 для периодической очистки папки журнала. Вы также можете настроить группу на adm через chown и в logrotate.d, как упоминалось, чтобы разрешить доступ к заданным журналам пользователю группы администраторов.