我刚刚在全新的 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/"
在谷歌搜索这个问题时,我发现第二个答案在此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;
FCGId
但是,在进行上述更改并重新启动 nginx 和 php7.4-fpm 后,如果我在服务器控制面板(Virtualmin)中检查 PHP 执行模式,则可用的两个选项均未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
操作/etc/php/7.4/fpm/pool.d/www.conf
,但这也无济于事,而且还是同样的事情发生。
附言这个问题与我使用的控制面板无关,因为网上有相当多的 ServerFault 帖子和多个论坛主题似乎与这个问题有关,当他们尝试使用带有双栈 ipv4/ipv6 设置的 PHP-FPM 时。