Nginx 01 nginx 卸载二进制安装的nginx

二进制安装的 Nginx 卸载不掉,多半是没删干净残留文件和配置,或者进程还在占用。它不像 yum/apt 装的软件能一条命令搞定,得手动逐项清理。

先按这个顺序排查,基本能解决:

🔍 先停进程、确认端口释放

  1. 停掉 Nginx 进程:执行 ps aux | grep nginx 查看进程,然后用 sudo nginx -s stop 或 sudo pkill nginx 停掉;不行就 sudo kill -9 [PID] 强杀。
  2. 确认端口已释放:执行 sudo lsof -i :80 或 sudo ss -tuln | grep ':80\|:443',确保 80/443 端口没有被占用。

🗑️ 删除主安装目录和散落文件

  1. 定位安装路径:运行 which nginx 和 nginx -V 2>&1 | grep "prefix",找到实际的 --prefix 路径(常见是 /usr/local/nginx,也可能是 /opt/nginx 等)。
  2. 删主目录:sudo rm -rf /usr/local/nginx(换成你查到的实际路径)。
  3. 删软链接或复制副本:sudo rm -f /usr/sbin/nginx /usr/local/sbin/nginx。
  4. 删配置、日志、缓存目录:sudo rm -rf /etc/nginx /var/log/nginx /var/cache/nginx /var/lib/nginx。

⚙️ 清理环境变量和服务

  1. 清 PATH 环境变量:检查 ~/.bashrc、~/.bash_profile、/etc/profile 等文件,删掉包含 nginx 或 /usr/local/nginx/sbin 的 export PATH=... 行,然后 source ~/.bashrc 生效。
  2. 删 systemd 服务(如果配置过):sudo systemctl disable nginx,再 sudo rm -f /etc/systemd/system/nginx.service,最后 sudo systemctl daemon-reload。
  3. 删 init.d 脚本(老系统):sudo rm -f /etc/init.d/nginx 并 sudo chkconfig nginx off。

🧹 扫描零散残留

  1. 全局搜索残留二进制:sudo find / -name "nginx" -type f -executable 2>/dev/null,逐个确认后删除。
  2. 清理编译残留和临时文件:rm -rf ~/nginx-* /tmp/nginx* /usr/src/nginx-*;如果源码目录还在,进去执行 make clean 再删掉整个目录。
  3. 检查用户级残留:ls -la ~ | grep nginx,有 ~/.nginx 或 ~/nginx.conf 也删掉。

✅ 最后验证是否干净
三项都通过才算卸载成功:

  • nginx -v 返回 command not found。
  • ls /usr/local/nginx(或你的安装路径)报 No such file or directory。
  • sudo ss -tuln | grep ':80\|:443' 无输出。

如果 nginx -v 还能执行,说明 PATH 环境变量没清干净;如果端口还被占用,说明进程没杀干净,回头重点查这两步。

删完这些基本就干净了。要是你后续打算用 yum{id="entity_1"} 或 apt{id="entity_2"} 重装,记得先确认没有旧文件干扰,否则容易装出问题。

posted @ 2026-10-16 15:01  超轶绝尘  阅读(4)  评论(0)    收藏  举报