源码编译安装的 nginx 卸载需手动清理配置、日志、服务定义及环境变量;先停止进程、释放端口,再删主目录、独立路径、服务文件和 path 中的引用,最后验证 command not found 且相关路径均不存在。

源码编译安装的 Nginx 没有包管理器记录,卸载必须手动逐项清理——重点不是删掉 nginx 二进制文件,而是清除散落在系统各处的配置、日志、服务定义和环境变量。漏掉任意一项都可能导致重装失败、端口冲突或命令仍可调用。
停止并确认所有 nginx 进程已退出
避免残留进程占用端口或干扰后续操作:
- 执行
sudo /usr/local/nginx/sbin/nginx -s stop(路径以你实际--prefix为准) - 若不确定路径,先运行
ps aux | grep nginx找出主进程 PID,再用sudo kill -9 [PID]强制终止 - 检查 80/443 端口是否释放:
sudo lsof -i :80或sudo ss -tuln | grep ':80\|:443',应无输出
删除主安装目录及关联路径
源码安装路径由 ./configure --prefix= 指定,常见为 /usr/local/nginx,但也可能是 /opt/nginx 或 /soft/nginx:
- 查真实路径:
nginx -V 2>&1 | grep "prefix"(注意是大写 V),输出中--prefix=后面即根目录 - 删除整个安装目录:
sudo rm -rf /usr/local/nginx(替换成你查到的实际路径) - 清理可能存在的软链接或复制副本:
sudo rm -f /usr/sbin/nginx /usr/local/sbin/nginx
清空配置、日志与缓存等独立目录
这些目录不会随主目录自动删除,且常被新安装覆盖或引发冲突:
- 配置目录:
sudo rm -rf /etc/nginx(若 configure 时指定过--conf-path=/etc/nginx/nginx.conf) - 日志目录:
sudo rm -rf /var/log/nginx - 缓存与临时文件:
sudo rm -rf /var/cache/nginx /var/lib/nginx /usr/local/var/run/nginx* - 检查用户级残留:
find ~ -name "*nginx*" -type d 2>/dev/null,确认后手动删除
移除服务定义与环境变量
否则新装后可能因旧 service 文件或 PATH 导致命令异常或开机自启:
- 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 - 环境变量:检查
~/.bashrc、~/.zshrc、/etc/profile中是否含export PATH=.../nginx/sbin,删掉对应行并执行source ~/.bashrc
验证是否彻底卸载:运行 nginx -v 应提示 command not found;ls /usr/local/nginx、ls /etc/nginx、ls /var/log/nginx 均报 “No such file or directory”;systemctl list-unit-files | grep nginx 无输出。每步清理后建议快速验证一次,不复杂但容易忽略日志和 PATH。











