Я пытаюсь сохранить журналы фреймворка 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, как упоминалось, чтобы разрешить доступ к заданным журналам пользователю группы администраторов.