大部分建站系统「上线即终版」:不敢升,怕把改过的模板冲掉;不升,又有兼容和安全问题。
差异包,不是全量包
升级包按版本比对生成,只包含真正改动过的文件。一个修 bug 的版本通常只有十几个文件、几十 KB,几秒钟装完。
升级做了什么
| 步骤 | 说明 |
|---|---|
| 校验 | 核对授权与目标版本,确认可升级 |
| 下载 + 验签 | sha256 比对,再用 RSA 公钥验证签名,包被改过就终止 |
| 备份 | 被覆盖的文件先复制到 runtime/update/backup-* |
| 覆盖 | 只写差异清单里的程序文件,模板、上传、配置跳过 |
| 清理 | 按删除清单移除废弃文件,同步版本号与校验清单 |
被保护的内容
template/与public/template/:你改过的主题不会被覆盖config/、.env:站点配置与数据库连接public/uploads/:所有上传的图片和文件
升级失败怎么办
每次升级都有日志,错误会精确到文件与行号;备份目录保留被覆盖的上一版文件,可以手工还原。权限异常的目录会被自动修复,不需要你上服务器改 chmod。