У меня есть установка php-fpm на CentOS 7, где у каждого пользователя есть собственный пул и файлы журнала. Я хочу убедиться, что каждый пользователь может просматривать свои собственные файлы журналов.
Это отлично подходит для PHP error_log, который создается тем же пользователем / владельцем группы, что и процессы пула php-fpm.
К сожалению, журнал замедления PHP для каждого пула создается как «root» с разрешениями «600». Есть ли способ настроить php-fpm для создания файла slowlog с правильным владельцем файла и / или с настраиваемыми правами доступа к файлу?
Следующая конфигурация:
user = some_user
group = some_group
php_admin_value[error_log] = path-to-logs/php-error.log
php_admin_flag[log_errors] = on
request_slowlog_timeout = 10s
slowlog = path-to-logs/php-slow.log
Приводит к следующим разрешениям файла в пути к журналам:
-rw-r--r-- 1 some_user some_group 7244 Mar 10 22:54 php-error.log
-rw------- 1 root root 2307 Mar 9 20:21 php-slow.log
Насколько мне известно, невозможно установить уровень владения или разрешения непосредственно в конфигурации. Обходной путь - заставить сценарий инициализации установить эти разрешения для вас после перезапуска.
Фактически, гораздо лучше было бы убедиться, что с помощью сценария logrotate.d, который в противном случае изменит все, что вы установили в сценарии инициализации, если вы решите (и должны) повернуть медленный журнал.
Может показаться странным, что, несмотря на определение медленного журнала на уровне пула (который работает от имени указанного пользователя), медленный журнал создается главным процессом и, следовательно, принадлежит пользователю root.
В конфигурационном файле определенно должна быть настройка для установки уровня разрешений и владения, аналогичная той, на которую указывает @ sandyskies-chan в комментарии