宝塔旧版本(如7.x、8.x)无法通过界面更新,需用命令行强刷;v9.0.0不可直升v11.4,须重装迁移。执行前务必备份,升级后需手动修复插件、调整计划任务PHP路径及检查防火墙规则。

面板右上角更新按钮点不动或提示“版本过旧”
说明你的宝塔已脱离常规升级路径,常见于 7.x、8.x 甚至更老版本。此时内置更新功能会直接失效,不是按钮坏了,而是底层 Python 环境或面板框架已不兼容新版本协议。
- 先别反复点“更新”,无效操作可能触发重复下载或残留锁文件
- 检查当前版本:
bt命令回车后看第一行输出,若显示v7.9.0、v8.2.2或更低,基本确定需命令行强刷 - 执行前务必确认服务器已做快照或备份 —— 虽然升级脚本不碰网站数据,但极旧版本存在 pyenv 初始化异常导致面板无法启动的风险
SSH 中执行 update_panel.sh 报错 “No such file or directory”
这是最常被卡住的环节:错误提示如 mv: cannot stat ‘/www/server/panel/pyenv’: No such file or directory,不代表操作失败,只是说明你当前面板压根没用 pyenv 管理 Python,属于早期(2021 年前)安装方式。
- 跳过
mv /www/server/panel/pyenv /root/pyenv_bak这步,它只对特定旧环境有效 - 直接运行升级命令:
curl http://download.bt.cn/install/update_panel.sh|bash - 如果提示
curl: command not found,先装 curl:yum install -y curl(CentOS)或apt install -y curl(Ubuntu/Debian) - 执行完等待输出
Success后,用bt命令重启服务,再浏览器刷新面板
升级后插件不显示、计划任务失效、PHP/MySQL 版本丢失
这不是升级失败,而是新版面板(v9.0+)对旧配置做了清理和重载策略:它不会自动迁移非标准安装的插件、自定义计划任务脚本路径、或手动编译的数据库二进制。
- 插件需手动进入软件商店 → 点击对应插件 → 点“修复”或“重装”,尤其是 Nginx 防火墙、网站监控等依赖面板内核的组件
- 计划任务中所有“Shell 脚本”类任务,需检查路径是否仍存在,部分旧版任务调用的是
/usr/bin/php,而新版默认用/www/server/php/81/bin/php(具体以你安装的 PHP 版本号为准) - MySQL 若从 5.6 升级到 5.7+,注意
sql_mode默认值变更,可能导致某些老程序报Invalid default value for 'xxx'
稳定版(v9.0.0)和正式版(v11.4)之间不能跨版本升级
官方明确不支持 v9.0.0 直接升 v11.4,两者架构差异大,强行覆盖会导致面板后台白屏、API 失效、甚至登录页 CSS 加载失败。
- v9.0.0 是长期维护的稳定分支,只修严重 bug,不加新功能;v11.4 是功能迭代主线,含 Go 极速版内核、新版安全中心等
- 如必须用 v11.4,请做好完整迁移准备:导出网站配置(
bt 10)、数据库全量备份、SSL 证书单独保存,再重装面板 - 重装命令为:
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh(注意是install_6.0.sh,非旧版脚本)
php 调用,以及防火墙规则里手动加过的 iptables 临时规则 —— 它们不会出现在任何升级日志里,但会在你第二天发现网站打不开时突然冒出来。










