船说 CMS 低版本如何升级

域名注册
域名注册 正式会员超兽战士 👑年卡会员
发布于 2026-10-08 00:14 ·1 浏览 ·0 回复

学完这篇,你能把跑在老版本上的船说 CMS 安全升级到新版本,并且在升级失败时能一键退回,不丢数据。

第一步:先搞清楚你现在站在哪一版

升级前必须确认三件事:当前版本号、服务器环境、有没有改过核心代码。这三条决定了后面能不能直接覆盖升级。

  • 查版本号:登录后台,点左侧菜单「系统」→「系统信息」,版本号一般显示在这个页面的底部,形如 v1.x.x。
  • 查环境:SSH 登录服务器后执行 php -v 和 mysql -V,看清楚 PHP 和 MySQL 的实际版本。新版船说 CMS 通常要求 PHP 7.4 以上、MySQL 5.7 以上,环境不达标就先升环境,别急着动程序。
  • 查二开:如果你改过 app/、core/ 里的文件,或者加过自定义插件,先用官方同版本原始包做一次目录对比,把改动过的文件路径记到记事本里。

注意:跨大版本不能一步到位。比如从 v1.x 直接升到 v3.x,官方一般要求 1.x → 2.x → 3.x 逐级升。跳版升级最容易出现数据表字段缺失、后台白屏的问题。

第二步:全量备份,一步都不能省

这一步要拿到两份东西:一份站点文件压缩包、一份数据库 SQL 文件,出任何问题都靠它回滚。

用宝塔面板的话:点「网站」→ 找到你的站点 → 点「备份」按钮 → 分别执行「备份网站」和「备份数据库」,备份文件默认落在 /www/backup/ 下。

用命令行的:


tar -czf /root/site_$(date +%F).tar.gz /www/wwwroot/你的站点目录

# 备份数据库
mysqldump -u root -p --default-character-set=utf8mb4 你的库名 > /root/db_$(date +%F).sql

注意:备份完一定要验证,别只看文件生成了就放心。tar -tzf 包名.tar.gz | head 能列出内容,ls -lh 看 SQL 文件大小是否正常(几 KB 的多半是空的)。

第三步:先在本地或测试环境演练一遍

直接在生产站上升级,等于拿真数据做实验。正确做法是先复制一份演练环境。

具体操作:新建一个子目录(如 /www/wwwroot/test),解压第二步的文件备份进去,再新建一个测试数据库,导入刚才的 SQL,然后把配置文件 config/database.php 里的库名改成测试库。这样演练出问题不影响线上。

第四步:下载对应版本的升级包

到官方发布渠道下载升级包,重点看两点:包名里标的目标版本号,以及包里是否带 upgrade 或 update 目录。带升级脚本的才是增量包,只有完整文件的通常是全量包。

下载后本地解压,先看根目录有没有 readme.txt 或 UPGRADE.md,升级说明和特殊要求一般写在这里,务必先读。

第五步:覆盖文件,但要保留该保留的

全量包升级的做法是覆盖,但不能无脑全覆盖。用 FTP 或宝塔「文件」管理器上传时,下面这些目录和文件不要覆盖:

  • config/ 整个目录(里面有数据库连接信息,覆盖后连不上库)
  • uploads/、public/uploads/(用户上传的图片视频)
  • template/ 或 templates/(你的前台模板,除非你要用新版默认模板)
  • runtime/(缓存,覆盖不覆盖都行,但升级前建议先清空)

其余核心目录(app/、core/、public/static/ 等)直接覆盖。

注意:覆盖前先把 config/database.php 单独复制一份到电脑桌面,万一覆盖了直接传回去。

第六步:执行升级脚本

这一步让新代码把数据库结构改成新版的样子。

覆盖完成后,浏览器访问 http://你的域名/install/upgrade.php(部分版本是 update.php 或 upgrade/index.php,以包里实际文件名为准)。按提示点「开始升级」,中间不要刷新、不要关页面。数据量大时可能停在某个百分比好几分钟,耐心等。

如果升级完成提示存在,说明数据库已经改好;如果提示失败,先看具体报错信息,多半是数据库用户权限不足或某个字段已存在——后者可以忽略继续。

第七步:清缓存并做回归测试

升级脚本跑完后,登录后台,进「系统」→「清除缓存」,把模板缓存、数据缓存、日志全勾上清一遍。然后逐项检查:首页能否打开、栏目页能否打开、详情页能否打开、后台上传图片是否正常、登录退出是否正常。

如果页面样式错乱,按 Ctrl + F5 强制刷新,多半是浏览器缓存了旧 CSS。

第八步:出问题怎么回滚

发现严重问题就回滚,别硬修。操作是:把第二步的文件包解压覆盖回站点目录,再进 phpMyAdmin 把你那个库的所有表删除,然后导入备份的 SQL 文件。两分钟就能回到升级前的状态。

小结

  • 升级前必查三件事:版本号、PHP/MySQL 版本、有没有二开
  • 跨大版本必须逐级升,不能跳版
  • 文件和数据库都要备份,并且验证备份文件是否可用
  • 先在测试环境演练一遍,再动生产站
  • 覆盖文件时保留 config/、uploads/、template/
  • 升级脚本跑完后清缓存,并逐页做回归测试
版权声明:本文来自 GJ站长论坛《船说 CMS 低版本如何升级》
原文链接:https://www.gj0.com/thread-637.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~