v1.0.0(2026-11-02 更新)
一句话:升级前先备份,出问题一键还原。
功能清单
备份
- 「立即备份」:把整站文件(app / config / routes / resources / public / plugins / .env 等,范围可配)打包成 zip,可同时备份数据库(纯 PHP 导出,不需要 mysqldump 或 exec 权限)。本店实测 4067 个文件 + 124 张表,一次跑完。
- 备份列表:每份显示编号、时间、站点版本、体积、是否含数据库;可下载、可删除。
- 超过保留份数自动清理最旧的;「还原前自动留的那份」永远不参与清理。
升级
- 「一键升级」:查最新版 → 下载官方包 → 自动先备份 → 覆盖文件 → 数据库迁移 → 重装本站补丁,一条流程走完。
- 没有备份时不允许升级,先去备份一份。
- 升级过程中显示当前阶段和已用时间;长时间没有响应会提示「可以刷新页面看结果」,刷新不会打断后台。
- 升级已完成、正在跑、失败回滚,都有明确结果页;失败会自动回滚到升级前。
还原
- 选一份备份点「还原」:把它里面的文件写回站点(数据库不动)。
- 还原前自动再留一个恢复点,还原错了还能退回上一次。
- 还原全程有进度提示,中途不会出现白屏或 500。
- 还原后会自动清缓存、重载 opcache,不用手动重启。
插件台账
- 一屏列出所有已装插件:标识、名称、版本、是否启用、磁盘占用、有无建表脚本。
- 升级后回来对个数:备份时是 N 个,现在少了一个,就是被官方升级删掉的。
操作记录
- 谁在什么时候备份、升级、还原过,全部留痕。
环境要求
- InnoShop CE v0.9.2+。
- PHP 8.1+,需 ZipArchive 扩展(宝塔默认带)。
storage/app可写(存备份)。
兼容环境
| # | 项目 | 说明 |
|---|---|---|
| 1 | 系统文件 | 纯插件实现,不改系统任何文件 |
| 2 | 数据库 | 自建 3 张表(备份 / 文件清单 / 操作日志),卸载即删,不留孤儿表 |
| 3 | 其他插件 | 零硬依赖;装了「商城问题修复(PanelFixes)」时多一个跳转按钮,没装不影响任何功能 |
| 4 | 权限 | 全部后台路由已登记到「角色权限」页,是否授权给子管理员由超级管理员决定 |
在哪里看到它
- 后台右上角「系统维护」按钮(有新版本时箭头变红,点进就是本插件)。
- 插件列表里点「使用」。
安全设计
- 路径防穿越:还原只接受站点根内的相对路径,
../直接拒收。 - 大文件(>50MB)按「前 1MB + 体积」取指纹,不逐字节哈希。
- 备份目录只允许删除
storage/app/upgrade_guard之下的内容。 - 所有写操作走 POST + CSRF,都在管理员登录态后面。
Version
v1.0.0 (2026-11-02):首个版本——备份(文件 + 数据库)、一键升级(自动备份 + 失败回滚)、一键还原(自动恢复点)、插件台账、操作留痕。
---
[中文](README.md)