.png)
新しい Ubuntu 20.04.2 サーバーに、PHP7.4-fpm を搭載した最新の Nginx をインストールしました。
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/"
これについてグーグルで調べたところ、2番目の答えこれについてServerFault スレッドこれは、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 実行モードを確認すると、使用可能な 2 つのオプションのどちらも使用されていませ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 に IPv6 アドレスではなく IPv4 アドレスを使用するように指示するにはどうすればよいですか?
注意listen = /run/php/php7.4-fpm.sock
に変更しlisten = 127.0.0.1:8000
てから上記の手順を実行してみました/etc/php/7.4/fpm/pool.d/www.conf
が、それでも効果はなく、同じことが起こりました。
追伸この問題は私が使用したコントロール パネルとは関係ありません。どうやらデュアル スタック ipv4/ipv6 設定で PHP-FPM を使用しようとしたときにこの問題に関連していると思われる ServerFault の投稿やオンラインのフォーラム スレッドが多数あるためです。