我刚刚升级到最新的 LTS 版本 22.04.1。一切顺利,我被要求重新启动服务器以完成升级。发布此信息后,当我尝试访问我的网络服务器时,我看到了错误502 Bad Gateway nginx/1.18.0 (Ubuntu)
。
从错误日志中我看到了这一点:[notice] 50936#50936: using inherited sockets from "7;8;"
nginx 和 mysql 服务器均处于活动状态并正在运行。我该如何修复此问题?
答案1
502 表示 nginx 无法连接到上游,在您的情况下是 php-fpm。PHP 可能已随发行版升级而更新。
ls /var/run/php/
php8.1-fpm.pid php8.1-fpm.sock php-fpm.sock
注意php8.1-fpm.sock
在 中/etc/nginx/sites-available/default
,应该有类似这样的内容:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
更新之前是 php7.4,现在套接字不存在了,所以 nginx 无法将文件传递给 php-fpm。只需更改/var/run/php/php7.4-fpm.sock
为新的套接字文件名,然后执行nginx -s reload
,它应该可以再次工作。更好的是,将其更改为/var/run/php/php-fpm.sock
无论版本如何(基于默认安装的 PHP),它是实际 PHP 套接字的符号链接。这样您就不必在每次升级时都进行更改。