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

Сделать журнал php-fpm как root: adm

Я хочу убедиться, что члены adm группы могут читать все журналы, и процесс php-fpm делает исключение, поскольку он регистрирует php5-fpm.log под root:root и u=r+w

Я не могу найти способ добиться этого. Я рассматривал возможность использования syslog.facility директивы, но я бы предпочел сохранить специальный файл журнала.

Вам следует более внимательно прочитать руководство по Конфигурация PHP FPM php-fpm.conf директивы:

  • В syslog.facility директива контролирует только средство тип и дефолт установлен в daemon. Это не влияет на расположение. Ненормативный средства системного журнала определены в RFC 5424, 6.2.1. Как видите, средства 16–23 предназначены для локального использования, и вы можете выделить одно для PHP FPM.
  • Правильная директива для отправки журнала в syslogd вместо локального файла: error_log syslog, в то время дефолт ценность #INSTALL_PREFIX#/log/php-fpm.log.
  • Еще одна важная директива здесь: syslog.ident php-fpm (это дефолт стоимость).

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

Один Logrotate, чтобы управлять ими всеми

Права доступа к файлам можно контролировать в logrotate конфигурация, которая также имеет create директива.

/var/log/php-fpm.log {
    create 0640 root adm
}

Системный журнал и специализированное средство

Используя Syslogd позволяет настраивать все расположения файлов на одном syslog.conf. По-прежнему можно настроить syslogd для использования отдельного файла журнала для PHP FPM с помощью специального средства, например local4:

# /etc/syslog.conf

local4.*    /var/log/php-fpm.log

Фильтры rsyslog

Если вы используете rsyslogd, ты можешь фильтр PHP-FPM syslog.ident добавлен к каждому сообщению:

# /etc/rsyslog.conf

:syslogtag, isequal, "php-fpm"    /var/log/php-fpm.log
:syslogtag, isequal, "php-fpm"    ~

С rsyslogd права доступа к файлам также устанавливаются в rsyslog.conf:

# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022