Appearance
109 与 113 完全隔离
109 和 113 按两个独立项目部署。根目录脚本只负责读取主机清单和编排,不提供共享 API、共享后台、共享 PHP 运行器或共享版本配置。
正式目录
| 范围 | 109 | 113 |
|---|---|---|
| 游戏/API 项目根 | C:\D2109server | C:\D2113server |
| 后台项目根 | D:\GM109.DIABLO2.COM.CN | D:\GM113.DIABLO2.COM.CN |
| 后台程序 | D:\GM109.DIABLO2.COM.CN\admin | D:\GM113.DIABLO2.COM.CN\admin |
| 后台 runner | D:\GM109.DIABLO2.COM.CN\run-admin.cmd | D:\GM113.DIABLO2.COM.CN\run-admin.cmd |
| 论坛 PHP 服务根 | D:\AH.DIABLO2.COM.CN\forum-services\d2109 | D:\AH.DIABLO2.COM.CN\forum-services\d2113 |
| 论坛 PHP 环境源 | D:\AH.DIABLO2.COM.CN\forum-services\d2109\run-php.cmd | D:\AH.DIABLO2.COM.CN\forum-services\d2113\run-php.cmd |
| 论坛 FastCGI | IIS 应用池 CNBN-Forum-109 | IIS 应用池 CNBN-Forum-113 |
| 项目运行配置 | d2109/deploy/runtime.json | d2113/deploy/runtime.json |
论坛程序仍安装在同一个 PHPWind 站点,但业务入口、聊天入口、通知模板、PHP 进程、环境变量、API 凭据和内部令牌均按 d2109/、d2113/ 分开。不得在论坛根目录增加兼容入口来重新合并两个版本。
API 边界
不存在公共或共享 Realm API。两台公网入口的 /api 和 /api/* 固定返回 404。
- 109 后台只通过本机回环连接
D2109Api;论坛主机只通过防火墙白名单访问 109 私有 API。 - 113 后台只通过本机回环连接
D2113Api。 - 浏览器只能经各自后台的认证代理访问本版本 API,不能直接访问 API 端口,也不能提交另一版本 profile。
- 109 VIP GS 使用
D2109VipAgent,它属于 109 项目,不是 113 API。
独立发布
powershell
# 只校验目录、配置和版本边界,不连接正式机。
python .\scripts\d2ctl.py validate
# 只预演 109 API 发布,不修改正式机。
python .\scripts\d2ctl.py deploy 109b --component api
# 只发布 109 API;不会发布或启动 113 游戏。
python .\scripts\d2ctl.py deploy 109b --component api --apply
# 只发布 109 后台;不会修改 113 后台。
python .\scripts\d2ctl.py deploy 109b --component admin --apply
# 只发布 113 后台;不会修改 109 后台或启动 113 游戏。
python .\scripts\d2ctl.py deploy 113c --component admin --apply
# 发布同一论坛中的两套独立业务目录和 PHP runner;不发布 API 或后台。
python .\scripts\d2ctl.py deploy all --component forum --applyweb 聚合组件已经删除。管理员必须明确选择 api、admin、forum 或 docs,防止一次命令把两个项目重新耦合。
当前生产状态
当前只运行 109 免费国度和 109 VIP 国度。113 后台可独立维护和登录,但 113 BNetD、D2CS、D2DBS、免费 GS 与 VIP GS均保持停止。更新 113 后台不等于部署 113 游戏。
验收时必须同时确认:109 与 113 后台可以在同一浏览器分别登录;交叉后台路径返回 404;公共 /api/health 返回 404;两套论坛入口正常;113 游戏服务没有被启动。