
我剛剛在新的 Ubuntu 20.04.2 伺服器上安裝了最新的 Nginx 和 PHP7.4-fpm。
我新增了一個虛擬主機,上面有一個 WordPress 網站,而且載入正常,但我注意到 nginx 日誌充斥著以下錯誤:
[error] 183472#183472: *625 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xxx.xxx.xx, server: example.com, request: "GET /some-page-name/ HTTP/1.1", upstream: "fastcgi://[::1]:8001", host: "example.com", referrer: "https://example.com/"
在谷歌上搜尋這一點時,我發現第二個答案在此伺服器故障線程這是因為我使用的是 ipv6 位址,我可以透過在 nginx 伺服器區塊檔案中替換localhost
來修復它,因為這是行不通的。127.0.0.1
fastcgi://[::1]:8001
我進行了更改/etc/nginx/sites-available/example.com.conf
並更改了以下行:
fastcgi_pass localhost:8001;
到:
fastcgi_pass 127.0.0.1:8001;
根據同一則評論伺服器故障回答,在 中/etc/nginx/sites-available/default
,我更改了以下行:
listen 80 default_server;
到:
listen 0.0.0.0:80 default_server;
但是,在進行上述更改並重新啟動 nginx 和 php7.4-fpm 後,如果我在伺服器控制面板(Virtualmin)中檢查 PHP 執行模式,FCGId
則可用的兩個選項都沒有FPM
被使用。
當我選擇 FPM 並點擊「儲存」時,fastcgi_pass 127.0.0.1:8001;
nginx 伺服器區塊檔案中的行將恢復,fastcgi_pass localhost:8001;
並且上述錯誤開始再次出現。
listen 0.0.0.0:80 default_server;
然而,重新啟動 nginx 或 fpm 後並沒有恢復。
如何指示 FPM 使用 ipv4 位址而不是 ipv6 位址?
注意我嘗試更改listen = /run/php/php7.4-fpm.sock
為listen = 127.0.0.1:8000
in /etc/php/7.4/fpm/pool.d/www.conf
,然後按照上述步驟進行操作,但這也沒有幫助,並且發生了相同的事情。
聚苯乙烯這個問題與我使用的控制面板無關,因為當他們嘗試將 PHP-FPM 與雙棧 ipv4/ipv6 設定一起使用時,網上有相當多的 ServerFault 帖子和多個論壇線程似乎與此問題相關顯然。