旧版本宝塔面板(v7.9.0及更早)无法一键升级至v8.0,因底层校验拒绝执行;必须通过命令行直升v9.0.0,或v8.2.2用户仅可升至v8.3.0后再跳转v9.0.0。

旧版本宝塔面板(如 v7.x、v8.0 之前)无法通过后台“更新”按钮一键升级到 v8.0 —— 那个按钮点不动或提示“版本过旧”,不是界面故障,而是底层校验直接拒绝执行。
为什么面板右上角的“更新”按钮点不了
宝塔 v7.9.0 及更早版本使用 Python 2.7 + 自研框架,而 v8.0 起全面切换为 Python 3.7+ 和重构后的内核。面板在加载时会检查 pyenv 环境、Python 版本、API 协议兼容性,任一不满足就禁用更新入口。
- 常见现象:
bt命令回车后第一行显示v7.9.0或v7.7.0,但面板右上角更新按钮灰显或点击无响应 - 错误提示可能藏在浏览器控制台:
Failed to fetch /api/panel/get_update_info或403 Forbidden - 这不是网络问题,是服务端主动拦截:旧版
/www/server/panel/class/update.py根本不提供 v8.0 兼容的升级路径
执行 curl http://download.bt.cn/install/update_panel.sh|bash 就能升到 v8.0 吗
不能直接升到 v8.0。该脚本目前(2026年4月)默认拉取的是稳定分支 v9.0.0,而非 v8.0 —— 官方已将 v8.x 列为历史版本,不再提供独立升级通道。
- v7.x → v8.x 的升级包早在 2023 年底就从下载源下线,
update_panel.sh中硬编码的 URL 指向的是 v9.0+ - 强行指定旧版本 URL(如
v8.2.2)大概率返回 404,或触发校验失败中断 - 如果你明确需要 v8.2.2(例如某些插件强依赖该版本),唯一可行方式是重装:先卸载当前面板,再用对应版本安装脚本(如
curl http://download.bt.cn/install/install-ubuntu_6.0.sh改为install-8.2.2.sh,但该脚本官方未公开存档)
实际可操作的升级路径只有两条
你当前的版本决定了下一步只能选其一,没有“平滑”中间态:
- 若当前是
v7.9.0或更老:必须走命令行强刷 → 直升v9.0.0(稳定版),不是 v8.0;执行前备份快照,升级后手动修复插件和计划任务 PHP 路径 - 若当前已是
v8.2.2:它支持后台一键升级,但最高只到v8.3.0(最后的 v8.x 维护版),之后必须跳到 v9.0.0;检查方法:SSH 运行bt,看输出是否含v8.2.2或v8.3.0 - v9.0.0 与 v11.4 之间不可直连升级,v9 是长期维护分支,v11 是全新 Go 内核,架构不兼容
升级后最常被忽略的三件事
很多人以为“Success”输出完就结束了,其实关键动作在后面:
-
计划任务里所有 Shell 类型任务,原路径/usr/bin/php必须改为/www/server/php/81/bin/php(以你实际安装的 PHP 版本号为准) -
Nginx 防火墙、网站监控报表等插件不会自动重装,需进软件商店手动点「修复」——否则面板首页统计模块空白 - MySQL 若从 5.6 升到 5.7+,
sql_mode默认值变更,老程序可能报Invalid default value for 'xxx',需进 phpMyAdmin 执行SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO';










