Logging
使 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