如何以非 root 使用者身分執行 PHP-FPM 主進程?

如何以非 root 使用者身分執行 PHP-FPM 主進程?

我正在嘗試實現在 Kubernetes 中運行的無根 PHP-FPM pod。

php-fpm -FO我嘗試透過 init 腳本以使用者身份簡單地在 Kubernetes pod 中運行進程,www-data但它抱怨沒有存取權限/dev/stderr日誌輸出位置)。將www-data用戶加入tty群組也沒有幫助。

我嘗試指定另一個位置,例如/proc/self/fd/2甚至/dev/pts/1作為日誌位置,但無濟於事。

有趣的是,當我docker run -itd app:latest su -l www-data -s /bin/sh -c php-fpm -FO &直接透過 Docker 運行基本上相同的啟動命令時,它啟動並運行得很好。

我在 Kubernetes 中沒有進行任何securityContext可能影響進程正常啟動的配置。

有什麼建議/想法可以嘗試嗎?

答案1

如果您在不同的公開應用程式上遇到相同的錯誤,則可能表示 GKE 有問題。您可以透過以下方式舉報問題追蹤器
如果此錯誤特定於此應用程序,請考慮不同的日誌聚合器,例如邊車模式
有關登入 GKE 的更多信息,請參見此處文件
此外,如果您將 cOS 與 Docker 一起使用,則應該切換到 containerd 版本,因為前者已被已棄用

相關內容