nginx + php以不同的使用者id運行

nginx + php以不同的使用者id運行

在舊的共用伺服器系統中,我的使用者名稱是 A。

$puser = posix_getpwuid(posix_geteuid())['name']; // = $puser = "A";

現在我運行自己的 VPS,它運行 nginx,用戶名/群組是 nginx。

然而,我已經使用使用者名稱 B 建立了一個朋友的帳戶,我希望他創建的每個 PHP 腳本都使用使用者 B 而不是 nginx 執行。基本上我希望每個 PHP 腳本都使用創建它的相同用戶的 UID 來運行。

nginx 可以嗎?

答案1

使用裸 nginx,您不能僅基於文件所有權來做到這一點。

PHP-FPM 是與 nginx 一起使用的腳本執行引擎。

在PHP-FPM中,有PHP工作池,可以在不同的連接埠中設定。每個 PHP-FPM 工作執行緒都可以有一個執行該池的腳本的使用者。

然後,在 nginx 端,設定哪個 PHP-FPM 後端用於哪個請求的規則。正常配置是 nginx 上的每個虛擬主機都使用自己的 PHP-FPM 工作池。

使用裸 nginx,無法檢查檔案所有權,因此可以使用該資訊選擇後端位置。不過, nginxlua模組可以用於此目的。

相關內容