简要说明:

  1.该补丁适用于V1.2.0~V1.3.0低版本qbcms系统。

  2.操作方法:补丁下载后解压到网站根目录,浏览器访问:https://你的域名/upgrade_patch.php

  补丁会作检查,确认无误后点击“立即执行补丁”按钮即可,补丁运行完会自动销毁,无需手动清理。此时进入后台,点击更新检测,输入后台密码可直升V1.4.2(当前最新版本)。

  后台目录若自己改过名称,补丁亦能自己检测,但建议先改回admin(别忘记同步修改config.php),升级完成后再改回后台目录名称。


  下载地址:点击下载

  

  特别提醒:V1.2.0~V1.3.0低版本后台升级检测到V1.4.2时,请勿升级,否则系统会触发回滚机制将备份文件倾泄至网站根目录,导致网站无法正常访问(V1.4.0及后续版本已修复),如你已点击升级操作出现该情况,请使用本补丁修复后网站即可正常访问,冗余文件请使用官方专用清理工具清理即可。专用清理工具地址:点击下载


QBCMS 低版本升级补丁 v1.4.2 · 安装说明

======================================================================


【适用站点】

当前程序版本为 V1.2.0、V1.2.1 …… V1.3.0 的 QBCMS 站点。

版本低于 V1.2.0 的站点请先升级到 V1.2.0;已是 V1.4.0/V1.4.1/V1.4.2 的站点不需要本补丁。


【为什么需要它】

后台「系统更新 → 检测更新」能探测到 v1.4.2,点「升级」却提示「该路径受保护,不允许在更新包中修改:static/member/contribution/create.html」并在回滚后中止。原因有两个:

1) 旧版升级器把 static/ 整目录列为受保护前缀,v1.4.1 / v1.4.2 升级包中有一个受保护前缀下的会员投稿模板,命中即整包中止。官方 v1.4.2 升级器已加入static/member/ 例外放行规则,本补丁就是把这一版升级器带给老站点;同时该版本 修正了升级失败回滚时的文件落盘路径,回滚不会再出现文件写错位置的情况。

2) v1.4.2 升级包是相对 v1.3.0 基线打包的。V1.2.0 站点直接升 1.4.2 会缺少 V1.2.0 → V1.3.0 那一层的 25 个文件、并遗留 7 个待删文件(老客户端又只会 直连最新版,不会自己补这一层)。本补丁在站点低于 1.3.0 时自动补齐这一层,并把程序版本号更新为 1.3.0。这一层比官方 QBCMS_upgrade_1.3.0.zip 多覆盖一个根目录 index.php:官方 1.3.0升级包漏掉了它,导致 1.2.0 站点升上来后前台模板的 {qbcms:version} 标签不可用(该文件自 v1.3.0 起内容未再变过,1.3.0 / 1.4.0 / 1.4.1 / 1.4.2 完全一致)。

补丁装好之后,老客户端仍然直连 v1.4.2 —— 这一次可以一次升到最新版。


【包内文件】

app/Core/Updater.php      官方 v1.4.2 升级器(已含 static/member/ 例外与回滚落盘路径修正)

upgrade_patch.php         引导脚本(体检 / 自动补齐增量 / 写执行报告 / 自动回滚 / 自动清理自身)

step_1.3.0/manifest.json  V1.2.0 → V1.3.0 增量清单

step_1.3.0/files/…        上述清单对应的文件(25 个覆盖 + 7 个删除)

安装说明.txt               本文件(安装成功后由脚本自动删除)


【安装步骤】

第 1 步:覆盖升级器

把本包**解压后**的全部内容,上传/覆盖到站点根目录(即含 config.php、 index.php、app/、admin/ 的那一层目录)。

这一步完成后,app/Core/Updater.php 已被替换为官方 v1.4.2 修补版。


第 2 步:运行补丁脚本(点击按钮,无需复制地址)

浏览器访问:https://你的域名/upgrade_patch.php

页面先做只读体检(站点版本、后台目录、升级器校验、data/ 可写、补丁目录可写等),并列出本次将执行的动作;确认无误后,直接点击页面上的【立即执行补丁】按钮,一次点击即完成安装:

备份 → 补齐 1.3.0 层(低于 1.3.0 时)→ 更新版本号 → 写幂等标记 → 删除补丁文件。

安装结果(覆盖/删除文件数、备份目录、清理情况)直接显示在页面上,请留存备查。


第 3 步:后台升级

登录后台 → 系统更新 → 检测更新 → 升级。

此时可正常升级到 v1.4.2。建议升级前先备份数据库与站点文件;若升级失败,

系统会自动回滚,站点不受影响。


第 4 步:清理(已自动化)

安装成功后脚本会自动删除站点根目录下这三项补丁文件:

upgrade_patch.php、step_1.3.0/、安装说明.txt

个别主机因权限受限未能删除时,页面会逐项提示,请按提示手动删除对应项。

注意:app/Core/Updater.php 是站点程序文件(本补丁的价值所在),不属于清理范围。


【回滚】

补丁执行前的原始文件全部备份在站点的 data/backup/patch_<时间戳>/files/ 下,其中 config.php 的原件为 data/backup/patch_<时间戳>/config.php.bak,

同目录 patch.log 记录了本次实际执行的动作。

如需回滚:把 files/ 下的文件按原相对路径覆盖回站点即可。

脚本自身在任一环节失败时也会自动回滚(会在页面上列出回滚项),并且此时不会清理

补丁文件,可修复问题后再次点击按钮重试。


【常见问题】

1) 页面提示「app/Core/Updater.php 不是 v1.4.2 修补版」

说明第 1 步没做或没覆盖成功,请重新上传本包内容后刷新页面(体检为只读,可放心刷新)。

2) 页面提示「无法确定站点后台目录名」

个别站点把 admin/ 改名过。脚本会从 config.php 的 ADMIN_DIR 读取真实后台目录;

若 ADMIN_DIR 缺失或与实际目录不符,脚本会主动中止(避免把文件写进凭空新建的

admin/ 目录)。请先修正 config.php 中的 ADMIN_DIR 再执行。

3) 页面提示「data/ 目录不存在或不可写」

补丁必须能写入备份,请给站点 data/ 目录写权限(Windows 主机注意 IIS 用户权限)。

4) 升级到 1.4.2 时仍提示「该路径受保护」

说明第 1 步的升级器没有生效,请确认 app/Core/Updater.php 已是补丁包内的版本

(其文件 md5 应为 266b1c60ab4efd1c9d0a60405612601f)。

5) 重复安装补丁

脚本写入幂等标记后默认拒绝重复执行。确需重跑,请按页面提示点击「强制重跑补丁」

按钮(同样只通过按钮触发,不再使用地址参数)。

6) 点按钮提示「页面口令校验失败」或「来源站点不一致」

说明本次请求不是从本站页面点击的按钮发出的,或点击前站点 config.php 已被改动。

请重新访问 https://你的域名/upgrade_patch.php,在页面上直接点击按钮。

7) 只想删掉补丁文件、不执行安装

在体检页点击【仅清理补丁文件】按钮即可,站点文件与版本号不会有任何改动。


【校验值】

app/Core/Updater.php   md5 = 266b1c60ab4efd1c9d0a60405612601f

upgrade_patch.php      md5 = 286065d5a9e8314bb59f1ccd4dc8a00e

index.php(1.3.0 层)  md5 = 672199fd7a20c494f406ef55771d91dd   ← 仅站点版本低于 1.3.0 时写入


注意:本补丁只替换升级器并补齐 1.2.0→1.3.0 增量,不改变任何站点业务数据,不涉及数据库表结构。