本文基于 GEOFlow 官方知识截止 2026-08-09 的文档,说明从 2.0.x 环境升级到 GEOFlow 2.3.0 的完整步骤。该版本汇总了 2.1.0 以来的安全加固,并新增默认官网主题与参考内容,升级需要停机排空旧进程并完成数据迁移回填。
升级前必须完成的环境确认
开始 GEOFlow 2.3.0 升级前,务必核对以下 5 项:
- 代码来源为
https://github.com/yaojingang/GEOFlow.git,部署分支为main。 - 已记录当前版本、镜像标签与最近一次可用提交。
- 已备份 PostgreSQL、
.env.prod(或.env)、storage与目标站点包。 - Queue 与 Scheduler 已停止接收新任务,旧进程和队列已排空。
- 已预留停机窗口,并准备数据库与文件快照的恢复步骤。
代码更新与必须同步的文件
升级 GEOFlow 2.3.0 时禁止手工挑文件覆盖,应整体拉取 main 分支。以下核心文件必须随代码一同更新,否则会导致功能异常:
version.json与config/geoflow.phpapp/Http/Controllers/Admin/*和Site/*全部控制器- 多语言文件
lang/zh_CN/admin.php等
数据库迁移与回填检查
2.1.0 引入了新的迁移文件(如 2026_06_20_0000...),升级 GEOFlow 2.3.0 时必须执行数据库迁移。此外,早期安全版本对受管图片新增了 managed_path_hash 回填要求,升级后需要完成 readiness 检查,确认回填成功才可开启物理删除(该功能默认关闭)。
执行步骤:
- 停止调度并排空旧 Worker。
- 拉取完整代码,核对
.env.prod.example与现有配置差异。 - 按部署文档设置安全升级确认项,执行
php artisan migrate --force。 - 完成
managed_path_hash回填与 readiness 检查后,再启动新 Worker。
v2.3.0 安全加固与审计要点
GEOFlow 2.3.0 升级包含多项安全加固,运维和审计环节需重点确认:
- JSON-LD 注入阻断:所有主题的 JSON-LD 统一由
Js::encode生成,阻断</script>注入。 - 出站安全网关:分发、URL 导入、AI 请求等全部流经出站网关,强制 DNS 全量校验、IP 固定与重定向控制,修复 SSRF 绕过。
升级后验证与回滚清单
升级完成并重启队列 Worker 后,按以下清单验证和准备回滚:
- 检查
version.json显示为 2.3.0。 - 确认企业知识库草稿生成任务可正常入队与消费。
- 验证前台 JSON-LD 输出符合预期,无非法字符。
- 测试出站功能(如目标站点同步)未出现连接错误。 若需回滚,停止新进程,恢复升级前的数据库、文件和环境快照,再启动已验证的旧代码版本。