宝塔面板右上角“更新”按钮失效说明版本已脱离自动升级路径,需用命令行强刷并备份;v7.x/v8.x老版本不兼容新版协议,v9.0+不会自动迁移旧配置,须手动修复插件、调整PHP/MySQL路径及计划任务。

面板右上角“更新”按钮点不动?说明版本已脱离自动升级路径
这不是按钮坏了,而是你的宝塔很可能卡在 v7.x 或 v8.x 这类老版本——它们的 Python 环境、pyenv 结构和新版协议不兼容,内置更新功能直接失效。反复点击只会生成残留锁文件,甚至触发重复下载。
- 先确认版本:
bt命令回车,看第一行输出;若显示v7.9.0、v8.2.2或更低,就别指望点按钮了 - 不要尝试从
v9.0.0直升v11.4:官方明确不支持,强行覆盖会导致后台白屏、API 失效、CSS 加载失败 - 真正安全的路径只有一条:用命令行强刷,且必须先备份——哪怕只是服务器快照
执行 update_panel.sh 报 “No such file or directory” 怎么办?
最常见报错是 mv: cannot stat ‘/www/server/panel/pyenv’: No such file or directory,这不代表失败,只说明你当初装的是 2021 年前的老版本,压根没用 pyenv 管理 Python。跳过那步移动操作就行。
- 先确保有
curl:yum install -y curl(CentOS)或apt install -y curl(Ubuntu/Debian) - 直接运行升级命令:
curl http://download.bt.cn/install/update_panel.sh|bash - 如果提示证书错误或连不上,加
-k忽略校验:curl -k https://mirrors.aliyun.com/bt/install/update6.sh | bash(推荐阿里云镜像源)
升级后插件消失、计划任务失效、PHP 路径报错?不是升级失败,是配置未迁移
新版面板(尤其是 v9.0+)不会自动继承旧环境里的非标配置。它清理了冗余结构,但也清掉了你手动写的路径、插件软链接、自定义脚本依赖。
-
Nginx 防火墙、网站监控等插件需进【软件商店】手动点“修复”或重装 - 计划任务中所有 Shell 类任务,检查 PHP 调用路径是否还写的是
/usr/bin/php;新版默认走/www/server/php/81/bin/php(具体以你装的 PHP 版本号为准) - MySQL 若从
5.6升到5.7+,注意sql_mode默认值变更,老程序可能报Invalid default value for 'xxx'
想全自动更新?别信“开启自动更新”就完事
面板首页勾选“开启自动更新”,只是让前端定时轮询版本号并弹窗提醒,**不会自动下载安装**。真要无人值守,得靠系统级定时任务调用更新接口。
- 推荐方案:用
crontab每日凌晨执行:0 4 * * * /www/server/panel/pyenv/bin/python /www/server/panel/class/panelUpdate.py --update >> /var/log/bt_update.log 2>&1 - 注意日志路径权限,
/var/log/bt_update.log需确保www用户可写,否则静默失败 - 别用面板自带的【计划任务】里填 Shell 脚本的方式——它依赖面板服务本身,而升级过程会重启服务,导致任务中断
升级不是点一下就结束的事,尤其跨大版本时,pyenv 状态、PHP 路径、MySQL 兼容性、插件重装顺序,每个环节都可能卡住。最常被忽略的是:升级前没确认内核是否满足最低要求,结果更新完面板起不来,才发现是 uname -r 返回的内核太老。

















