执行宝塔卸载脚本前必须确认:1. 停止所有相关进程(bt 1、pkill);2. 确认未托管需保留的网站或数据库;3. 检查是否手动修改过服务安装路径。

执行宝塔官方卸载脚本前必须确认的三件事
宝塔官方脚本 bt 6 确实能删掉面板,但默认不清理 Nginx、MySQL、PHP 等运行环境——你以为卸干净了,其实 /www/server/ 下一堆残留,端口还占着,新装其他服务会冲突。
常见错误现象:bt 6 执行完访问 8888 端口 404,但 netstat -tuln | grep :8888 仍显示监听;mysql -V 仍能输出版本;/www 目录还在且占用几十 GB。
- 先停掉所有宝塔相关进程:
bt 1(停止面板)、pkill -f 'python.*panel'、pkill -f 'nginx|mysql|php-fpm' - 确认没在用宝塔托管的网站或数据库——脚本不会备份你的站点文件和 MySQL 数据,删了就真没了
- 检查是否手动改过默认路径:比如把 MySQL 安装到了
/opt/mysql而非/www/server/mysql,这类不会被脚本识别
手动补全清理:删掉脚本漏掉的四大件
官方脚本主要清面板自身(/www/server/panel)和部分服务配置,但以下四类几乎必留:
-
/www/server/下除panel外的目录:尤其是mysql、php、nginx、pure-ftpd,直接rm -rf /www/server/{mysql,php,nginx,pure-ftpd} - 系统级服务注册:CentOS 7+ 运行
systemctl list-unit-files | grep -i 'nginx\|mysql\|php',对输出中状态为enabled的逐个执行systemctl disable xxx+rm /etc/systemd/system/xxx.service - 用户与组:宝塔创建的
www用户和www组通常残留,用id www检查,确认无其他进程依赖后执行userdel -r www - 定时任务:宝塔添加的 crontab 条目不会被清除,执行
crontab -e和cat /var/spool/cron/root,删掉含panel、bt、/www/server/panel的行
端口、防火墙、开机自启的隐性残留
卸载后 8888、80、443 端口仍被占用?大概率是 nginx 或 php-fpm 残留进程没杀净,或防火墙规则没清。
- 查端口真实持有者:
lsof -i :8888(不是netstat,它可能显示已关闭但内核连接未释放) - 清 firewalld 规则:
firewall-cmd --list-all | grep -E '8888|80|443',对匹配项执行firewall-cmd --remove-port=8888/tcp --permanent,最后firewall-cmd --reload - 检查开机自启的二进制路径:比如
/usr/bin/nginx可能是宝塔编译安装的,和系统包管理器无关,which nginx查到后直接rm -f $(which nginx) - 注意 CentOS 6 的
/etc/rc.local和 Ubuntu 的/etc/rc.local,里面常有宝塔启动命令,删掉对应行
验证是否真干净:三个终端命令一测便知
别信“脚本执行成功”,只看这三个命令输出是否为空或报错:
-
ps aux | grep -E 'panel|nginx|mysql|php-fpm' | grep -v grep—— 应无输出 -
ls /www/server/—— 应提示No such file or directory(除非你手动保留了/www存网站数据) -
bt—— 应提示command not found;如果还显示菜单,说明/usr/bin/bt没删,直接rm -f /usr/bin/bt
最易被忽略的是 /www/wwwroot/ 和 /www/backup/ —— 它们不在卸载范围内,但占空间又容易误认为是宝塔残留。要不要删,得看你是否还需要里面的网站文件。

















