我刚刚将 AWS 上的 ubunut 服务器从 Ubuntu 16.x 升级到 Ubuntu 20.04.1 LT
一开始我在升级时遇到了一些问题,但我能够克服这些问题。一旦我升级了,虽然我无法让 nginx 运行并再次实际使用我的网站。
在查看了我的 nginx.conf 和错误之后,这一行导致了一个错误:
nclude /etc/nginx/sites-enabled/*;
启用站点的示例文件与我的实际网站文件一起存在,因此我将其更改为:
include /etc/nginx/sites-enabled/mywebsite.net;
一旦我提出了这个问题,我就可以让 nginx 启动并运行,但是当我试图查看我的网站时,我得到了 502 错误。
在查看日志时,我能够拉出这条线:
2020/11/25 15:27:02 [crit] 12327#12327: *1 connect() to unix:/var/run/php/php7.2-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: xx.xx.xx.xx, server: www.mywebsite.net, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "www.mywebsite.net"
所以我回到我的/sites-enabled/mywebsite.net
文件,我相信这就是问题所在,因为没有指向正确的 php 位置:
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
但我不确定下一步该怎么做才能让它指向 php 的正确位置?
假设您已经
php-fpm
安装,它是用 启动/启用的systemctl
,并且它运行正常/配置为使用套接字,您应该.sock
在/var/run/php/
.NGINX 根据您的配置通过
/var/run/php/php7.2-fpm.sock
.我假设在您的升级过程中,您可能已经离开了
php7.2-fpm
. 您必须确定php-fpm
系统上可用的版本,确保它正在运行,确定该套接字的位置,并将正确的套接字提供给 NGINX 配置。如果您已将系统配置为 7.2,那么您将在更新中退回到 7.1 对我来说没有意义。似乎这些文件只是散落在各处,但您可以通过查看它们的创建时间来更好地判断。也许
php7.2-fpm
仍然安装,但实际上并未运行/启用。