我想确保adm组的成员可以读取所有的日志,并且php-fpm进程会logging下root:root下的php5-fpm.log root:root和u=r+w
我找不到一个方法来实现这一点。 我已经考虑使用syslog.facility指令,但我宁愿保留一个专用的日志文件。
您应该仔细阅读PHP FPMconfiguration手册php-fpm.conf指令:
syslog.facility指令只控制工具types, 默认情况下设置为daemon 。 这不影响位置 。 非规范系统日志工具在RFC 5424,6.2.1中定义。 正如你所看到的,设施16-23是本地使用,你可以奉献一个PHP FPM。 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