在线升级功能完善
在线升级页面:点击「立即升级」时新增前置检查(preflight)步骤,未通过则阻断升级并展示问题清单,避免环境不达标导致升级失败 [状态不同步]
后台仪表盘页面:新增新版本自动检查提醒功能,管理员登录后异步调用 check 接口,发现新版本时在仪表盘顶部显示蓝色提醒横幅,含版本号、更新日志摘要、「前往升级」按钮 [配置不同步]
仪表盘版本检查结果用 localStorage 缓存 24 小时,避免每次进仪表盘都请求 Gitee API;无新版本时不显示横幅,检查失败时静默处理不打扰站长
同步 zh-cn/zh-tw/en-us 三种语言包,新增 7 条语言条目(前置检查、仪表盘提醒相关)[语言包不同步]
安全修复
新增 tmp/.htaccess 和 log/.htaccess 保护文件(Deny from all),Apache 自动生效
OnlineUpgradeService::preflight() 前置检查自动检测并创建缺失的 .htaccess 文件
OnlineUpgradeService::cleanup() 清理时保留 .htaccess 文件不删除
文档补充 Nginx 用户必须手动配置
location ^~ /tmp/ { deny all; }和location ^~ /log/ { deny all; }的说明升级备份目录名从
upgrade_backup_{YmdHis}/改为upgrade_backup_{YmdHis}_{6位随机}/,防止时间戳目录名被爆破猜中(OnlineUpgradeService + UpgradeService 两处同步修改)[信息泄露]
今日更新后需要测试的地方
[必测] 在线升级页面:点击「立即升级」,确认会先弹出前置检查(环境检测通过则继续,不通过则红色告警框阻断)
[必测] 在线升级页面:人为破坏环境(如 chmod 555 tmp/)后点「立即升级」,确认会被前置检查拦截
[必测] 后台仪表盘:登录后台首页,确认异步加载版本检查(F12 Network 看到 online_upgrade-check 请求)
[必测] 后台仪表盘:若 Gitee 上有比当前版本更新的 Release,确认顶部显示蓝色提醒横幅
[必测] 后台仪表盘:横幅「前往升级」按钮点击后跳转到 online_upgrade 页面
[必测] 安全验证:访问
https://yoursite.com/tmp/应返回 403 Forbidden(Apache)[必测] 安全验证:访问
https://yoursite.com/log/应返回 403 Forbidden(Apache)[必测] 安全验证:确认 tmp/.htaccess 和 log/.htaccess 文件存在
[回归] 在线升级页面:检查更新、重装当前版本、回滚功能不受影响
[回归] 后台仪表盘:原有统计卡片、图表、安全统计不受新增 JS 影响
[回归] 三种语言包切换:zh-cn/zh-tw/en-us 后台界面文案正常显示
[回归] 升级清理步骤:cleanup() 不会删除 tmp/.htaccess 文件
[必测] 备份目录名格式:升级后检查 tmp/ 下备份目录是否含 6 位随机后缀(如 upgrade_backup_20260703221500_a3f9b2)
[必测] 回滚功能:备份目录名含随机串后,rollback() 仍能通过 glob('upgrade_backup_*') 正常找到最新备份



