一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Nginx 源码安装如何卸载旧版本并清理残留文件

时间:2026-08-28 11:18:49 编辑:袖梨 来源:一聚教程网

源码安装的 Nginx 卸载需手动清除全部残留:先停服务并确认进程与端口释放,再删除安装目录、日志、配置、服务文件及环境变量,清理编译产物后验证命令、路径和端口无 nginx 痕迹。

源码安装的 Nginx 没有包管理器跟踪,卸载必须手动操作。关键不是只删掉 nginx 二进制文件,而是把散落在各处的配置、日志、服务定义、环境变量和编译残留一并清除。

先停服务,确认进程已退出

避免残留进程干扰后续清理:

  1. ps aux | grep nginx 查主进程,若有输出,执行 sudo /usr/local/nginx/sbin/nginx -s stop(路径以实际 --prefix 为准)
  2. 若不确定安装路径,运行 nginx -V 2>&1 | grep "prefix" 查看 configure 时指定的根目录
  3. 执行 sudo lsof -i :80sudo ss -tuln | grep ':80|:443',确认端口已释放

删主安装目录及关联路径

--prefix 路径统一清理,不跳过子目录:

  1. 删除整个安装目录,例如:sudo rm -rf /usr/local/nginx(替换成你查到的实际路径)
  2. 清理常见软链或复制的二进制:sudo rm -f /usr/sbin/nginx /usr/local/sbin/nginx
  3. 删默认日志与缓存位置:sudo rm -rf /var/log/nginx /var/cache/nginx /var/lib/nginx
  4. 删配置目录(若 configure 时未指定 --conf-path,通常为 /etc/nginx):sudo rm -rf /etc/nginx

清系统服务与环境变量

这些残留会影响新部署或命令调用:

  1. systemd 服务:执行 sudo systemctl disable nginx,再删服务文件 sudo rm -f /etc/systemd/system/nginx.service,最后 sudo systemctl daemon-reload
  2. init.d 脚本(旧系统):sudo rm -f /etc/init.d/nginx,并运行 sudo chkconfig nginx off
  3. 检查 shell 配置:grep -n "nginx|local.*nginx" ~/.bashrc ~/.profile /etc/profile,删掉相关 export PATH=... 行,再执行 source ~/.bashrc

清理编译残留与验证是否干净

别忘了当初解压编译的源码目录本身也是“垃圾源”:

  1. 进入原始源码目录(如 /root/nginx-1.27.0),运行 make clean 清除 objs/ 下的对象文件
  2. 手动删掉 Makefileobjs/(若 make clean 未清空)、auto/ 下临时头文件等
  3. 若不再需要源码包,可一并删掉 nginx-*.tar.gz 和解压目录
  4. 验证三要素:nginx -v 报 “command not found”;ls /usr/local/nginx 报 “No such file or directory”;sudo lsof -i :80 无 nginx 输出

热门栏目