Permissions
將日誌文件添加到 /var/log/apache2
我正在嘗試儲存 Lumen php 框架日誌
/var/log/apache2/
而不是其安裝目錄/儲存/日誌/文件夾。Lumen 端很好,因為我可以在 /tmp/ 中寫入日誌文件就好了。
即使經過半天的研究、試驗和撓頭,我仍然無法理解的是:
- 我正在執行 Ubuntu 16.04
- 儲存在 /var/log/apache2/ 中的日誌文件具有所有權 root:adm 和 priv -rw-r–r–
- Apache 僅作為 www-data 使用者和 www-data 組的一部分執行
- 我知道 logrotate 有配置行“create 640 root adm”,所以新的日誌文件是這樣創建的
- 我相信 selinux 沒有執行(找不到 sestatus 命令…)
所以…. Apache 怎麼能寫它的日誌文件?
澄清這個謎團可能會解決我的主要問題。我真的想將 Lumen 框架日誌儲存在 Lumen 安裝目錄之外,因為它被持續集成過程所取代。
我對主題和基礎知識進行了很多研究,但找不到答案。
簡短回答:因為 Apache 父程序始終由 root 啟動和擁有。因此它可以統計和寫入
/var/log/apache2/
。root 30089 0.0 0.4 518800 29604 ? Ss Jul05 0:09 /usr/sbin/apache2 -k start www-data 13076 0.0 0.2 521180 18036 ? S 00:05 0:00 \_ /usr/sbin/apache2 -k start www-data 13077 0.0 0.2 521180 18036 ? S 00:05 0:00 \_ /usr/sbin/apache2 -k start www-data 13079 0.0 0.2 521180 18036 ? S 00:05 0:00 \_ /usr/sbin/apache2 -k start www-data 13080 0.0 0.2 521180 18036 ? S 00:05 0:00 \_ /usr/sbin/apache2 -k start www-data 13081 0.0 0.2 521180 18036 ? S 00:05 0:00 \_ /usr/sbin/apache2 -k start www-data 13288 0.0 0.2 521180 18036 ? S 00:17 0:00 \_ /usr/sbin/apache2 -k start
/var/log/apache2
避免並將其留給 apache2 程序(僅)可能是一個好主意。就個人而言,我會創建一個新目錄,例如/var/log/lumen/
(順便說一句:您不必使用該/var/log/
區域進行日誌記錄),該目錄由您要記錄的給定父程序擁有。(可選)設置logrotate.d/
類似於 apache2 以偶爾清理日誌文件夾。您還可以將組設置為adm
via chown 並在 logrotate.d 中如上所述,以允許管理員組使用者訪問給定的日誌。