Fedora - Nginx PHP-FPM - 不斷將 FPM 套接字改為 root

Fedora - Nginx PHP-FPM - 不斷將 FPM 套接字改為 root

如果我的術語不符合標準,請提前道歉。

所以我剛剛在有 Nginx 和多個 PHP 版本的 Fedora Workstation 上成功設定了我的工作開發機器(使用 Remi Collet 的 Software Collection)。我有 PHP-5.6.30 監聽埠 9056,PHP-7.0.19 監聽埠 9070。

今天早上,我決定嘗試使用 FPM 套接字來運行兩個 PHP 實例,最初它一直有效,直到我重新啟動 PHP-FPM 服務(這導致了502錯誤的網關在瀏覽器中,以及(13) 拒絕許可nginx error.log 中出現錯誤)。

因此以 PHP5.6 為例...當我第一次啟動php56-php-fpm產生的服務時/opt/remi/php56/root/var/run/php-fpm/www.sock,我將產生www.sock檔案的使用者和群組變更為nginx:nginx。重新啟動後,php56-php-fpm我得知www.sock正在重置為root:root.現在我不會不斷地重新啟動 FPM,但必須有一種方法可以在.sock文件上設定一些預設值?我的 fpm conf 檔案如下所示:

我意識到這聽起來像是一個痛苦的正確工作,考慮到我這樣做只是為了本地開發,我確實使用連接埠 9056 和 9070 使這一切正常工作。

所以我的問題是:

  1. 我的配置中有什麼不正確導致 www.sockroot:root在重新啟動相應的 FPM 服務後重置為?
  2. 放棄端口而轉向套接字真的值得嗎?
  3. [稍微偏離主題]:使用 Remi Collet 的軟體集合,我看到 2 個 PHP 軟體包安裝到不同的位置:/opt/remi/php56並且/etc/opt/remi/php70......為了保持一致性,我是否應該考慮將其中一個移動到更常見的位置?

謝謝

答案1

有幾件事需要檢查...

1) 預設情況下,CentOS 下的 PHP 目錄中不包含設定文件php-fpm.d,請確保include=/opt/remi/php56/root/etc/php-fpm.d/*.conf該檔案包含設定檔php-fpm.conf

2) 您需要確保在 php-fpm 池配置中設定套接字所有權,例如:

[www]
listen       = /opt/remi/php56/root/var/run/php-fpm/$pool.sock
listen.owner = someuser
listen.group = somegroup
listen.mode  = 0600

答案2

就我自己的 remi 而言php80-php-fpm,我必須將listen.acl_users變數更改../php-fpm.d/www.conf為我的網頁伺服器的使用者。例如:

;comment: replace mywebserveruser with your own user 
listen.acl_users = mywebserveruser

相關內容