Apache-2.2
使用 PHP-FPM 時 www-data 仍然需要對 htdocs 具有讀取和執行權限,這是否正常?
我已經設置了 Apache+PHP-FPM 環境,並且在 PHP-FPM 池文件中設置了以下內容:
[www] user = mary group = mary listen = 127.0.0.1:9000 pm = dynamic pm.max_children = 8 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 4 pm.max_requests = 50
一切安好。我已經在 phpinfo 中確認它在 PHP-FPM 中執行,並且它也
mary
通過以下程式碼以使用者身份執行:<?php echo `whoami`; ?>
我已經
htdocs
遞歸地設置了 0750 權限(這個文件夾中的所有東西也繼承了這些權限):owner: mary RWX group: www-data RX
它執行良好。但由於我
mary
在 PHP-FPM 中執行,我認為 Apache 實際上不需要訪問htdocs
.所以我也嘗試將 0700 設置為
htdocs
遞歸,這實際上意味著只允許所有者mary
對該文件夾具有 RWX 權限。但是,當我訪問 中的頁面時htdocs
,我的權限被拒絕,而使用 0750 時不會發生這種情況。為什麼 Apache
htdocs
在這種情況下仍然需要訪問?
Apache 正在讀取您的文件,然後將其傳遞給 php-fpm。通過不讓 Apache 訪問該文件,它無法將文件傳遞給解釋器。它必須對這些文件具有讀取權限。
我的猜測是 PHP 可能會像 mary 一樣執行,但 apache 在執行之前仍然需要 rx 來讀取 php 文件。