网站还能访问,说明系统和 Nginx/MySQL 都活着,问题就锁在面板这一小块,别慌,也别去动 /www/wwwroot 和 /www/server/data,这俩是网站和数据库,跟面板启动没关系。
排查按这个顺序走,从便宜到麻烦:
1. 先手动前台启动,把报错逼出来
bt start 不报错最坑。直接跑:
/www/server/panel/pyenv/bin/python /www/server/panel/BT-Panel
或者 /etc/init.d/bt start,报错会直接打在屏幕上,Python 环境的错基本一眼就能看出。
2. 看磁盘,这是第一大嫌疑
df -h
df -i
磁盘满或者 inode 满,面板日志一写不进去就静默起不来,网站却还能跑。清理 /www/wwwlogs 下的大日志、/www/server/panel/logs 里的老日志,腾出空间再 bt start 试试。
3. 看内存和 OOM
free -h、dmesg | tail -30,如果看到 oom-killer 干掉了 python/BT-Panel,就是内存不够被杀。这种情况重启后短时间能用,过一会儿又挂。要么加内存,要么把面板里没用的插件停掉。
4. 看端口有没有真的监听
ss -lntp | grep 8888。没监听说明进程根本没起来;监听正常但打不开,那就是系统防火墙或云厂商安全组把 8888 拦了,或者面板端口被人改过(bt 菜单里能看当前端口)。
5. 看面板自己的日志
tail -n 100 /www/server/panel/logs/error.log
tail -n 100 /www/server/panel/logs/request.log
6. 怀疑 pyenv 环境损坏
执行 /www/server/panel/pyenv/bin/python -V,报错或者没反应就是 Python 环境挂了,bt 16 修不好也正常。先给服务器打个快照,然后:
mv /www/server/panel/pyenv /www/server/panel/pyenv.bak
再用官网的安装命令覆盖装一遍面板。这一步只重装面板程序,站点配置和数据库都在别的目录,不会丢。怕丢配置的话可以先把 /www/server/panel/data 单独备份一份。
7. 最后一招:面板 SSL 或配置文件卡住
试试 bt 25 关掉面板 SSL,有时候是证书过期导致连不上。还不行就按第 6 步重装面板。
真正要注意的坑就两个:磁盘满 和 pyenv 损坏,占了这类"突然打不开"的一大半。其他像端口占用、OOM、SSL 都属于顺手一查的事。