Nginx 01 nginx 卸载二进制安装的nginx
二进制安装的 Nginx 卸载不掉,多半是没删干净残留文件和配置,或者进程还在占用。它不像 yum/apt 装的软件能一条命令搞定,得手动逐项清理。
先按这个顺序排查,基本能解决:
🔍 先停进程、确认端口释放
- 停掉 Nginx 进程:执行
ps aux | grep nginx查看进程,然后用sudo nginx -s stop或sudo pkill nginx停掉;不行就sudo kill -9 [PID]强杀。 - 确认端口已释放:执行
sudo lsof -i :80或sudo ss -tuln | grep ':80\|:443',确保 80/443 端口没有被占用。
🗑️ 删除主安装目录和散落文件
- 定位安装路径:运行
which nginx和nginx -V 2>&1 | grep "prefix",找到实际的--prefix路径(常见是/usr/local/nginx,也可能是/opt/nginx等)。 - 删主目录:
sudo rm -rf /usr/local/nginx(换成你查到的实际路径)。 - 删软链接或复制副本:
sudo rm -f /usr/sbin/nginx /usr/local/sbin/nginx。 - 删配置、日志、缓存目录:
sudo rm -rf /etc/nginx /var/log/nginx /var/cache/nginx /var/lib/nginx。
⚙️ 清理环境变量和服务
- 清 PATH 环境变量:检查
~/.bashrc、~/.bash_profile、/etc/profile等文件,删掉包含nginx或/usr/local/nginx/sbin的export PATH=...行,然后source ~/.bashrc生效。 - 删 systemd 服务(如果配置过):
sudo systemctl disable nginx,再sudo rm -f /etc/systemd/system/nginx.service,最后sudo systemctl daemon-reload。 - 删 init.d 脚本(老系统):
sudo rm -f /etc/init.d/nginx并sudo chkconfig nginx off。
🧹 扫描零散残留
- 全局搜索残留二进制:
sudo find / -name "nginx" -type f -executable 2>/dev/null,逐个确认后删除。 - 清理编译残留和临时文件:
rm -rf ~/nginx-* /tmp/nginx* /usr/src/nginx-*;如果源码目录还在,进去执行make clean再删掉整个目录。 - 检查用户级残留:
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"} 重装,记得先确认没有旧文件干扰,否则容易装出问题。

浙公网安备 33010602011771号