源码安装的 Nginx 卸载需手动清除全部残留:先停服务并确认进程与端口释放,再删除安装目录、日志、配置、服务文件及环境变量,清理编译产物后验证命令、路径和端口无 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',确认端口已释放按 --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
--conf-path,通常为 /etc/nginx):sudo rm -rf /etc/nginx
这些残留会影响新部署或命令调用:
sudo systemctl disable nginx,再删服务文件 sudo rm -f /etc/systemd/system/nginx.service,最后 sudo systemctl daemon-reload
sudo rm -f /etc/init.d/nginx,并运行 sudo chkconfig nginx off
grep -n "nginx|local.*nginx" ~/.bashrc ~/.profile /etc/profile,删掉相关 export PATH=... 行,再执行 source ~/.bashrc
别忘了当初解压编译的源码目录本身也是“垃圾源”:
/root/nginx-1.27.0),运行 make clean 清除 objs/ 下的对象文件Makefile、objs/(若 make clean 未清空)、auto/ 下临时头文件等nginx-*.tar.gz 和解压目录nginx -v 报 “command not found”;ls /usr/local/nginx 报 “No such file or directory”;sudo lsof -i :80 无 nginx 输出