说真的,昨晚差点没睡踏实,从昨天下午3点多,一直忙到今天凌晨快4点,还有一个小程序没恢复好。
事情是这样的,我的服务器跑着宝塔面板 V11.8,一直挺稳定。但你也知道,作为一个没事就想“折腾一下”的站长,看到后台提示“V13 正式版本可升级”,心里就痒痒了。寻思着新版本肯定有性能优化和安全加固,手一抖就点了升级按钮。
结果,噩梦开始了。
升级进度条走到一半,卡住了。等了十几二十分钟没反应,我心想不妙,刷新了一下后台——直接拒绝访问了,连面板登录页都打不开了。
说实话那一瞬间我脑子是懵的。我的几个网站和一个小程序后端全跑在这台服务器上,要是面板挂了,以后还怎么维护(此时只是面板瘫痪了,网站和小程序业务还正常可用)。
赶紧切到 SSH 终端,尝试执行宝塔面板的常用bt 1/bt16等重启或修复命令,结果报了各种错误。仔细一看,是 Python 环境里缺了 `psutil` 模块。再往后翻日志,发现 pip 版本太老,而且 Python 的指向竟然莫名其妙跑到了 3.13——我明明记得之前是 3.8 左右的版本。这就导致面板依赖的 Python 环境彻底乱套了,命令完全执行不了。
试了几个网上搜到的修复命令,什么 `btpip install psutil`、`bt 16` 修复面板,统统报错。折腾了快一个晚上,我放弃了,因为实在太困了。
冷静下来之后,我做了一个决定:不修了,重装系统。
反正原来的 CentOS 7.3 也已经停止停止维护了,干脆趁这个机会换到 Debian 12。我先用 SSH 把宝塔里所有的网站文件、数据库备份包、小程序服务端的代码目录全部手动拷贝到本地,确认数据没丢,然后果断重装了系统。
新系统装好,Debian 12 + 新装的宝塔面板,丝滑流畅。但接下来的问题才是真正的难题——怎么把备份的数据恢复到新面板里?
网站文件可以直接解压覆盖,但数据库没那么简单。
- 首先,原来数据库的密码和新面板默认的不一样,小程序那边连不上数据库,直接报错。
- 其次,有几个网站之前做了伪静态和重定向规则,我早就忘了当初是怎么配的了。
- 还有,PHP 版本换了,部分扩展得重新装。
说实话,那一瞬间我真的有点想放弃了。数据明明在手里,但就是恢复不了,那种感觉比数据丢了还难受。
在这期间,我也各种问宝塔的客服,下班时间它就是一个AI智能客服,能给出很多思路,但不能进到我的服务器帮我操作,问题始终解决不了。到了今天早上,我突然想起了宝塔面板不是有个AI嘛,找它再试试!以前就用它帮我弄过robots.txt、重定向和伪静态,只是现在迟迟才想起它来,于是就试着点开问了一句:
“我刚重装了系统,之前备份的数据库怎么恢复到新面板里?密码不对怎么办?”
没想到,回复来得很快。AI 先让我确认 MySQL 的 root 密码,然后一步步指导我用命令行重置数据库用户的权限和密码。注意,它给的不是那种官网文档里的标准话术,而是结合我实际的备份文件路径,告诉我具体应该执行哪几条命令。我添加新数据库提示数据库已存在请换个用户名,它就让我通过数据库里的【同步数据库】找出并添加上原来的数据库了!
接着,我提到网站首页打开了但内页 404,它马上问我“之前是不是做了伪静态规则”,然后根据我选的 PHP 版本,给出了对应的 ThinkPHP 伪静态配置代码,还提醒我检查 `.env` 文件里的数据库配置是否同步更新了。
最让我意外的是,小程序那边报了个“重定向次数过多”的错误,我把报错截图描述了一下,AI 居然告诉我可能是强制 HTTPS 和 CDN 回源协议不一致导致的,让我去面板的网站设置里把“强制 HTTPS”关掉再试一下——结果真的就好了。
前前后后折腾了大概两个多小时,AI 陪着我一步步排查,从数据库密码重置、配置文件修正、伪静态规则添加,到最后的 SSL 证书重新部署。每解决一个问题,我都接着问下一个,它都能接住,没有出现那种“答非所问”的情况。
最后一个网站恢复访问,小程序也能正常登录了。我刷新了一下后台,所有站点都是“运行中”的绿色状态。
说实话,以前我对这类“AI 助手”是有点不屑的,总觉得就是个智能客服升级版,问点复杂问题就露馅。但这次经历真的改变了我的看法。
如果没有这个 AI,我可能还在网上翻各种博客帖子,把一堆过时的命令复制粘贴然后报错、再搜索、再报错,陷入死循环。而它就像一个熟悉宝塔方方面面的老站长,坐在旁边陪你一起 Debug。
当然,这次也吸取了教训——以后大版本升级前,一定要先做服务器快照。但宝塔 AI 确实在我最需要帮助的时候,拉了我一把。
如果你也是站长,遇到类似的问题,不妨先别急着骂娘,按我的操作试试看,说不定它真能帮你省下一个通宵。
—— 一个刚熬完夜但网站终于恢复了的站长
|
|