Apache-2.2

使用 PHP-FPM 時 www-data 仍然需要對 htdocs 具有讀取和執行權限,這是否正常?

  • January 16, 2014

我已經設置了 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 時不會發生這種情況。

為什麼 Apachehtdocs在這種情況下仍然需要訪問?

Apache 正在讀取您的文件,然後將其傳遞給 php-fpm。通過不讓 Apache 訪問該文件,它無法將文件傳遞給解釋器。它必須對這些文件具有讀取權限。

我的猜測是 PHP 可能會像 mary 一樣執行,但 apache 在執行之前仍然需要 rx 來讀取 php 文件。

引用自:https://serverfault.com/questions/567521