以root用户身份创buildphp-fpm日志:adm

我想确保adm组的成员可以读取所有的日志,并且php-fpm进程会logging下root:root下的php5-fpm.log root:rootu=r+w

我找不到一个方法来实现这一点。 我已经考虑使用syslog.facility指令,但我宁愿保留一个专用的日志文件。

您应该仔细阅读PHP FPMconfiguration手册php-fpm.conf指令:

  • syslog.facility指令只控制工具types, 默认情况下设置为daemon 。 这不影响位置 。 非规范系统日志工具在RFC 5424,6.2.1中定义。 正如你所看到的,设施16-23是本地使用,你可以奉献一个PHP FPM。
  • 发送日志到syslogd而不是本地文件的正确指令是error_log syslog默认值是#INSTALL_PREFIX#/log/php-fpm.log
  • 另一个重要的指令是syslog.ident php-fpm (这是默认值)。

在configuration级别上,没有关于文件权限的信息。 你必须得到源代码级别来弄清楚它是如何实际完成的。 一些build议更改初始化脚本的日志文件权限。

文件权限可以在logrotateconfiguration中进行控制,该configuration也具有create指令。

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

使用Syslogd可以在同一个syslog.confconfiguration所有的文件位置。 仍然可以将syslogdconfiguration为通过专用工具为PHP FPM使用单独的日志文件,例如local4

 # /etc/syslog.conf local4.* /var/log/php-fpm.log 

如果您使用的是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