源码安装的 Nginx 卸载需手动清除安装目录、配置、日志、服务文件、环境变量及编译残留,并验证命令失效、路径不存在和端口未监听。

源码安装的 Nginx 没有包管理器跟踪,卸载必须手动操作。重点不是只删 nginx 二进制文件,而是把散落在各处的配置、日志、服务定义、环境变量和编译产物一并清除。
停止服务并确认进程与端口已释放
避免残留进程干扰后续清理:
- 用
ps aux | grep nginx查主进程,若有输出,执行sudo /usr/local/nginx/sbin/nginx -s stop(路径以实际--prefix为准) - 若不确定安装路径,运行
nginx -V 2>&1 | grep "prefix"查看 configure 时指定的根目录 - 执行
sudo lsof -i :80或sudo ss -tuln | grep ':80\|:443',确认端口已无 nginx 占用
删除主安装目录及常见关联路径
按 --prefix 路径统一清理,不跳过子目录:
- 删除整个安装目录,例如:
sudo rm -rf /usr/local/nginx(替换成你查到的实际路径) - 清理软链或复制的二进制:
sudo rm -f /usr/sbin/nginx /usr/local/sbin/nginx - 删默认日志与缓存位置:
sudo rm -rf /var/log/nginx /var/cache/nginx /var/lib/nginx - 删配置目录(若 configure 时未指定
--conf-path,通常为/etc/nginx):sudo rm -rf /etc/nginx
移除系统服务与环境变量
这些残留会影响新部署或命令调用:
-
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、~/.profile、/etc/profile中是否含export PATH=...nginx行,删掉后执行source ~/.bashrc
清理编译残留并验证是否干净
别忘了当初解压编译的源码目录本身也是“垃圾源”:
- 进入原始源码目录(如
/root/nginx-1.27.0),运行make clean清除objs/下的对象文件 - 手动删掉
Makefile、残留的objs/、auto/下临时头文件等 - 若不再需要源码包,可一并删掉
nginx-*.tar.gz和解压目录 - 验证三要素:命令报错(
nginx -v提示 command not found)、路径不存在(ls /usr/local/nginx报 No such file or directory)、端口无监听(sudo lsof -i :80无 nginx 输出)


















