
在舊的共用伺服器系統中,我的使用者名稱是 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
模組可以用於此目的。