Ubuntu 20.04升级Nginx至1.25最新版后仍显示1.18版本求助
解决Nginx升级后仍显示旧版本的问题
1. 确认已安装的Nginx包版本
先执行命令查看系统中已安装的Nginx包信息,判断是否真的完成了升级:
sudo apt list --installed | grep nginx
如果输出显示已安装新版本,但nginx -v仍返回旧版本,说明系统中存在多个Nginx二进制文件,或者当前环境变量PATH指向了旧版本。
2. 切换至Nginx官方源(核心步骤)
Ubuntu默认软件源中的Nginx版本通常滞后,需切换到官方源获取最新稳定版:
- 安装必要依赖:
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring - 导入官方签名密钥:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null - 添加官方稳定版源:
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list - 设置源优先级,确保官方源优先于系统默认源:
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
3. 执行升级并重启服务
更新包列表后完成Nginx升级:
sudo apt update && sudo apt upgrade nginx
升级完成后必须重启Nginx服务,确保进程切换到新版本:
sudo systemctl restart nginx
4. 排查多版本冲突
如果上述步骤后nginx -v仍显示旧版本,按以下步骤定位并解决:
- 查看当前
nginx命令指向的路径:which nginx - 检查该路径下的Nginx版本:
$(which nginx) -v - 查找系统中所有可执行的Nginx二进制文件:
对每个找到的路径执行sudo find / -name nginx -type f -executable/path/to/nginx -v,确认哪个是新版本。
冲突解决方式:
- 若旧版本是源码编译安装的,直接删除旧二进制文件(如
/usr/local/sbin/nginx),或修改PATH环境变量,将新版本所在路径(通常为/usr/sbin/)放在旧路径之前。 - 检查Nginx服务的启动路径,确保使用新版本:
若路径指向旧版本,修改Nginx的systemd配置文件,更新为新版本路径后重启服务。systemctl cat nginx | grep ExecStart
内容的提问来源于stack exchange,提问作者Soubhagya Pradhan
相关产品推荐
相关产品推荐

