Revive Adserver 6.0.8 配置参数详解
详解 Revive Adserver 6.0.8 的 var/<主机名>.conf.php 配置体系:加载与主机名路由机制、49 个配置组逐项参数说明、插件配置区、修改生效方式与常见问题。
Revive Adserver 6.0.8 配置参数详解
目标:详解 Revive Adserver 6.0.8 安装向导生成的全局配置文件(
var/<主机名>.conf.php)的体系结构、加载机制与全部配置组参数,并给出手工修改配置的正确姿势与常见问题。文中所有参数值均取证自实测安装(2026-10-29,全新安装向导产物),源码行号取证自 6.0.8 源码包。安装过程见本站《Ubuntu 22.04 安装 Revive Adserver 6.0.8 指南》。
一、环境信息
| 项目 | 内容 |
|---|---|
| 软件版本 | Revive Adserver 6.0.8(schema 628) |
| 配置文件 | /var/www/revive-adserver/var/10.89.71.2.conf.php |
| 文件大小 / 配置组数 | 8427 字节 / 49 个 section |
| 生成方式 | Web 安装向导 finish 步骤自动写入 |
| 访问主机名 | 10.89.71.2(决定配置文件名) |
| 取证日期 | 2026-10-29 |
💡 Revive Adserver 没有全局统一的 conf.ini.php:配置文件按"访问主机名"逐主机命名,这是它多主机部署设计的核心。本文以
10.89.71.2.conf.php为蓝本讲解,你机器上的文件名以实际访问主机名为准。
二、配置体系与加载机制
2.1 var/ 目录的物理布局
安装完成后 var/ 目录与配置相关的文件(实测清单):
10.89.71.2.conf.php ← 主配置文件(按主机名命名)
default.conf.php ← 兜底指针文件
.htaccess ← Web 访问拦截
debug.log ← 调试日志([log] 段定义)
install.log ← 安装/升级日志
INSTALLED ← 安装完成标记(0 字节)
UPGRADE ← 安装/升级触发标记(安装完成后被自动删除)
cache/ ← 菜单、权限、投递函数等运行时缓存
plugins/ ← 插件运行时数据
templates_compiled/ ← 模板编译产物
三道防直读设计(实测取证):
var/.htaccess内容为Require all denied(Apache 2.4 段),直接拒绝一切 Web 访问;- 配置文件首行是
;<?php exit; ?>——对 INI 解析器它是注释,对 PHP 引擎是立即退出指令,即便.htaccess失效也不会泄露内容; - 文件第二行注释
;*** DO NOT REMOVE THE LINE ABOVE ***提醒不可删除首行。
2.2 主机名路由:配置文件如何被选中
加载逻辑在 init-parse.php(实测逐行取证),规则有三层:
- 取当前访问主机名:Web 请求取
$_SERVER['HTTP_HOST'];命令行取$GLOBALS['argv'][1](即 CLI 第一个参数)。命令行缺参直接抛异常,实测报错原文:
Revive Adserver was called via the command line, but had no host as a parameter.
- 优先加载
var/<主机名>.conf.php(init-parse.php第 92 行起); - 主机配置不存在时回退到
var/default.conf.php——这个文件只有一个键realConfig,指向真正生效的配置(实测内容):
;<?php exit; ?>
;*** DO NOT REMOVE THE LINE ABOVE ***
realConfig="10.89.71.2"
若主机配置文件存在且带 realConfig 键,则把它当作"覆盖层",与 realConfig 指向的配置合并后生效(第 101~113 行)。这个机制支持一台服务器多个投放域名共享一份主配置。
2.3 语法与取值约定
- 标准 INI 格式,
[section]分组,key=value;;开头为注释; - 空值(如
persistent=)表示"未启用/取默认";1为启用,0为关闭; - 含特殊字符的值带双引号,如
fromAddress="admin@example.com"; [plugins]、[pluginGroupComponents]的键=1是"该插件/组件已启用"的注册表。
三、核心配置组逐项详解
3.1 [openads]——安装状态与 SSL
| 参数 | 实测值 | 说明 |
|---|---|---|
| installed | 1 | 已安装标记,与 var/INSTALLED 呼应;安装判定(OA_Upgrade::isFreshInstall())同时检查它 |
| requireSSL | (空) | 强制后台走 HTTPS;生产暴露公网时建议设 1 |
| sslPort | 443 | HTTPS 端口 |
3.2 [ui]——管理界面
| 参数 | 实测值 | 说明 |
|---|---|---|
| enabled | 1 | 总开关 |
| applicationName | (空) | 界面显示的应用名,空则用 "Revive Adserver" |
| headerFilePath / footerFilePath / logoFilePath | (空) | 自定义页头/页脚/Logo 的文件路径,做白标(去除官方品牌)时用 |
| headerForegroundColor / headerBackgroundColor / headerActiveTabColor / headerTextColor | (空) | 顶栏配色 |
| gzipCompression | 1 | 后台页面 gzip 压缩 |
| combineAssets | 1 | 合并 CSS/JS 请求 |
| dashboardEnabled | 1 | 首页仪表盘 |
| hideNavigator | (空) | 隐藏左侧导航(演示/只读场景) |
| zoneLinkingStatistics | 1 | 区域关联统计 |
| disableDirectSelection | 1 | 关闭"直接选择"模式 |
| displayNameLength | 60 | 实体名称显示截断长度 |
| loaderDelay | 250 | 加载动画延迟(毫秒) |
3.3 [database] 与数据库家族——连接参数
实测值(安装向导写入):
[database]
type=mysqli
host=localhost
socket=
port=3306
username=admin
password=q1w2e3r4
name=revive_db
persistent=
protocol=tcp
compress=
ssl=
capath=
ca=
| 参数 | 说明 |
|---|---|
| type | 驱动:mysqli 或 pgsql |
| host / port / socket | 连接目标;socket 非空时走 Unix socket |
| username / password | 业务账号,向导里填的就是它(务必与数据库端授权一致) |
| name | 库名 |
| persistent | 1 = 长连接(高并发投放可开,注意与 MySQL 的 wait_timeout 配合) |
| compress | 1 = 客户端协议压缩(跨机房 DB 才有意义) |
| ssl / capath / ca | TLS 连接数据库的证书配置 |
配套段:
| 段 | 参数 | 实测值 | 说明 |
|---|---|---|---|
| [databaseCharset] | checkComplete | 1 | 字符集检查已完成(utf8mb4 库在安装时自动核验) |
| [databaseCharset] | clientCharset | (空) | 强制客户端字符集 |
| [databaseMysql] | statisticsSortBufferSize | (空) | 统计汇总排序缓冲(大库统计变慢时可调大) |
| [databasePgsql] | schema | (空) | PostgreSQL 模式名 |
3.4 [webpath]——三个入口的 URL
[webpath]
admin="10.89.71.2/admin"
delivery="10.89.71.2/delivery"
deliverySSL="10.89.71.2/delivery"
images="10.89.71.2/images"
imagesSSL="10.89.71.2/images"
admin/delivery/images 分别是后台、投递引擎、素材库的基准 URL(SSL 版本另配)。这些值直接写进生成的广告调用代码,也决定 CLI 的 host 参数——改动它等于"搬家",需要同步更新已分发的调用代码。
3.5 [file]——投递端点文件名映射
把"逻辑端点"映射到 www/delivery/ 下的 PHP 文件名(共 20 项,实测全表):
| 逻辑名 | 文件 | 用途 |
|---|---|---|
| view | avw.php | 广告展示(最常用) |
| click | ck.php | 点击跳转 |
| signedClick | cl.php | 签名点击(防伪) |
| log | lg.php | 原始日志打点 |
| frame | afr.php | iframe 方式调用 |
| js | ajs.php | JS 方式调用 |
| image | ai.php | 图片方式调用 |
| popup | apu.php | 弹窗 |
| layer | al.php | 浮层 |
| content | ac.php | 内容投放 |
| conversionvars / conversion / conversionjs | tv.php / ti.php / tjs.php | 转化跟踪三件套 |
| singlepagecall | spc.php | 单页多广告位调用 |
| spcjs | spcjs.php | SPC 的 JS 库 |
| asyncjs / asyncjsjs / asyncspc | asyncjs.php / async.js / asyncspc.php | 异步调用族 |
| frontcontroller | fc.php | 投递前端控制器 |
| xmlrest | ax.php | XML-RPC/REST 调用 |
改这些名字等同于"给端点改名",改完必须重新编译投递引擎(见第五节)。
3.6 [store]——广告素材存储
| 参数 | 实测值 | 说明 |
|---|---|---|
| mode | 0 | 0 = 本地存储(webDir);1 = 外部 FTP |
| webDir | /var/www/revive-adserver/www/images | 本地素材目录(须在 Web 根下可访问) |
| ftpHost / ftpPath / ftpUsername / ftpPassword / ftpPassive | (空) | mode=1 时的 FTP 参数 |
| maxFilesize | 0 | 上传大小上限(0 = 不限,实际仍受 PHP upload_max_filesize 约束) |
3.7 [allowedBanners]——允许的广告类型
| 参数 | 实测值 | 说明 |
|---|---|---|
| sql | (空) | SQL 广告类型(直接存 SQL 查询),风险较高默认关 |
| web | 1 | 本地上传图片/Flash |
| url | 1 | 外链图片 |
| html | 1 | 自定义 HTML(含第三方联盟代码) |
| text | 1 | 文字广告 |
| video | 1 | 视频(VAST,随 apVideo 插件启用) |
3.8 [delivery]——投递引擎(最核心的一组)
| 参数 | 实测值 | 说明 |
|---|---|---|
| cacheExpire | 1200 | 投递缓存有效期(秒,即 20 分钟)。投放数据不是实时的根源就在这——调小可提高实时性,代价是 DB 压力 |
| cacheStorePlugin | deliveryCacheStore:oxCacheFile:oxCacheFile | 缓存后端;装了 oxMemcached 插件后可切 memcached(对应 [oxMemcached] 段) |
| cachePath | (空) | 文件缓存自定义路径(空 = var/cache/) |
| acls | 1 | 投递时执行定向条件(频次、地域、时间等),关闭可提速但定向失效 |
| aclsDirectSelection | 1 | 直接选择模式下也执行定向 |
| obfuscate | (空) | 混淆点击 URL(隐藏目标地址) |
| ctDelimiter / chDelimiter | __ / "," | URL 变量分隔符(campaignid=__campaignid__ 风格) |
| keywords | (空) | 全局附加关键词 |
| ecpmSelectionRate | 0.9 | eCPM 优化在可选广告中的介入比例(0~1) |
| enableControlOnPureCPM | 1 | 允许对纯 CPM 合同做控量 |
| assetClientCacheExpire | 3600 | 投递 JS 资产的浏览器缓存时间(秒) |
| secret | O4Np/QcjL+DnO+bcblHI3ScMGVyW4afxbGdN4JZv978=(演示值) | 签名/防伪密钥(签名点击 cl.php 用),安装时随机生成,不要外泄、不要随意更换 |
| clickUrlValidity | 0 | 点击 URL 有效期(秒,0 = 不限) |
| relAttribute | noopener nofollow | 广告链接 rel 属性(SEO/安全) |
| relPreconnect | (空) | 预连接提示 |
| cgiForceStatusHeader | (空) | CGI 模式强制状态头 |
3.9 [privacy]——访客隐私
| 参数 | 实测值 | 说明 |
|---|---|---|
| disableViewerId | 1 | 不发/不读访客唯一 ID Cookie(OAID) |
| anonymiseIp | 1 | 日志中匿名化 IP 尾段 |
两个默认就是开的,符合 GDPR 友好方向;关闭它们可获得更完整的访客画像与地域统计,需自行评估合规。
3.10 [logging]——投递日志
| 参数 | 实测值 | 说明 |
|---|---|---|
| adRequests | (空) | 记录广告请求原始日志(6.x 默认关,开库压力大) |
| adImpressions / adClicks | 1 / 1 | 记录曝光/点击原始日志 |
| trackerImpressions | 1 | 记录跟踪器曝光 |
| reverseLookup | (空) | 日志时反解 IP 为域名(慢,别开) |
| proxyLookup | 1 | 识别 X-Forwarded-For 等代理头取真实 IP |
| defaultImpressionConnectionWindow / defaultClickConnectionWindow | (空) | 曝光/点击归因窗口默认值 |
| ignoreHosts / ignoreUserAgents | (空) | 过滤内网主机/爬虫 UA(多值用 | 分隔) |
| enforceUserAgents | (空) | 反向白名单:仅记录匹配 UA |
| blockAdClicksWindow | 0 | 点击去重窗口(秒) |
| blockInactiveBanners | 1 | 已停广告的点击不记账 |
3.11 [maintenance]——维护调度
| 参数 | 实测值 | 说明 |
|---|---|---|
| autoMaintenance | 1 | 无 cron 时由投递端点顺带触发维护(有 cron 建议关掉避免重复开销) |
| timeLimitScripts | 1800 | 维护脚本最长运行时间(秒) |
| operationInterval | 60 | 操作间隔(分钟),统计聚合的基本时间片;安装后不建议修改(会影响历史数据切分) |
| blockAdImpressions / blockAdClicks | 0 / 0 | 同一访客对同一广告的曝光/点击拦截窗口(秒) |
| channelForecasting | (空) | 频道预测 |
| pruneCompletedCampaignsSummaryData | (空) | 清理完结 campaign 的汇总数据 |
| pruneDataTables | 1 | 定期清理原始明细表(配合 operationInterval) |
| ecpmCampaignLevels | 9|8|7|6 | 参与 eCPM 自动优化的合同优先级层 |
维护脚本本身的用法(含 host 参数)见本站《Revive Adserver 6.0.8 常用 CLI 命令与工具详解》。
3.12 [priority]——优先级引擎
| 参数 | 实测值 | 说明 |
|---|---|---|
| instantUpdate | 1 | 高优先级合同变化时立即重算投放权重(否则等下一次维护) |
| intentionalOverdelivery | 0 | 允许高优先级合同超额投放 |
| defaultClickRatio | 0.005 | 无历史点击率时的默认 CTR(0.5%) |
| defaultConversionRatio | 0.0001 | 默认转化率 |
| randmax | 2147483647 | 随机数上限(int32) |
3.13 [table]——表前缀、存储引擎与表名映射
[table]
prefix=rv_
type=INNODB
| 参数 | 说明 |
|---|---|
| prefix | 全部数据表前缀(默认 rv_,实测库内 58 张表均以此开头) |
| type | 表存储引擎(INNODB) |
该段余下 49 个键是"逻辑表名 → 实际表名"映射(如 banners=banners、clients=clients),只在你想给单张表改名/分表时才需要动。历史命名彩蛋:affiliates 是"网站/媒体位"、clients 是"广告主"——OpenX 时代的遗产(沿革见本站《Revive Adserver 介绍与选型指南》)。
3.14 [email]——系统邮件
| 参数 | 实测值 | 说明 |
|---|---|---|
| logOutgoing | 1 | 外发邮件记录到日志 |
| fromAddress | admin@example.com | 发件人地址(向导填的 adminEmail) |
| fromName / fromCompany | (空) | 发件人显示名/公司 |
| headers / qmailPatch | (空) | 附加头 / qmail 兼容补丁 |
| useManagerDetails | (空) | 用各广告代理经理自己的邮箱做发件人 |
注意:这只影响 PHP mail() 发件;要接 SMTP 需要 rvMailer 插件的配置段(第四节)。
3.15 [log]、[deliveryLog] 与 [debug]——三份日志
| 段 | 关键参数 | 实测值 | 说明 |
|---|---|---|---|
| [log] | enabled / type / name | 1 / file / debug.log | 应用调试日志 var/debug.log |
| [log] | priority | 6 | PEAR Log 等级:6=INFO。排障时可临时调 7(DEBUG) |
| [log] | fileMode | 0644 | 日志文件权限 |
| [deliveryLog] | enabled | (空) | 独立投递日志开关(默认关,投递日志走 [logging] + 数据库) |
| [debug] | production | 1 | 生产模式(不向前端吐错误详情) |
| [debug] | sendErrorEmails / email | (空)/ email@example.com | 错误邮件推送 |
| [debug] | emailAdminThreshold | 3 | 触发管理员邮件的错误等级阈值 |
| [debug] | errorOverride | 1 | 屏蔽 PHP 错误输出到页面 |
3.16 [cookie]——访客 Cookie
| 参数 | 实测值 | 说明 |
|---|---|---|
| permCookieSeconds | 31536000 | 持久 Cookie 有效期(365 天) |
| maxCookieSize | 2048 | Cookie 上限(字节) |
| domain / viewerIdDomain | (空) | Cookie 作用域(跨子域投放时配置) |
| disabled | (空) | 1 = 完全禁用 Cookie(隐私合规需求) |
3.17 [var]——投递 URL 变量名映射
prefix=OA_ 定义 JS 变量前缀;其余 30 余项把"逻辑变量"映射到 URL/JS 参数名。投放侧最常用的一组(实测值):
| 逻辑名 | 实际参数名 | 用途 |
|---|---|---|
| campaignId / adId / zoneId | campaignid / bannerid / zoneid | 三要素定位 |
| creativeId | cid | 素材 ID |
| dest | dest | 点击落地方 |
| viewerId | OAID | 访客 ID |
| blockAd / capAd / sessionCapAd | OABLOCK / OACAP / OASCAP | 频次控制的 URL 传递变量(阻断/限量/会话内限量,campaign/zone 两级同理) |
| trace | OXTR | 跟踪标记 |
与 [file] 一样,改这里的名字会改变对外 URL 形态,改完要重编译投递引擎。
3.18 [lb]——数据库负载均衡
[lb]
enabled=
type=mysql
host=localhost
port=3306
默认关闭。启用后可把部分读请求分流到从库(host/port/username/password/name 填从库信息),大流量站点才需要。
3.19 [sync] 与 [oacSync]——官方版本检查
| 段 | 参数 | 实测值 | 说明 |
|---|---|---|---|
| [sync] | checkForUpdates | 1 | 后台首页检查新版本 |
| [sync] | shareStack | 1 | 匿名上报运行环境统计(介意可关) |
| [oacSync] | host / path | sync.revive-adserver.com /xmlrpc.php | 检查服务器地址 |
离线/内网部署建议把 checkForUpdates 置 0,避免后台等超时。
3.20 [authentication] 与 [security]——认证与密码策略
| 段 | 参数 | 实测值 | 说明 |
|---|---|---|---|
| [authentication] | type | internal | 内置账号体系(可换 IdN 插件做外部认证) |
| [authentication] | deleteUnverifiedUsersAfter | 2419200 | 未验证账号保留时长(秒,28 天) |
| [security] | passwordMinLength | 12 | 后台密码最短 12 位——与源码 lib/OA/Auth.php 的 DEFAULT_MIN_PASSWORD_LENGTH = 12 一致,安装向导的 "Too short" 拦截就是它(实测见安装指南 10.6 节) |
| [security] | badLoginLogPath | (空) | 暴力破解尝试日志路径 |
3.21 [geotargeting]——地域定向
| 参数 | 实测值 | 说明 |
|---|---|---|
| type | (空) | 地域库类型(装 MaxMind GeoIP2 插件后配 geotargeting 型插件) |
| showUnavailable | (空) | 定向库不可用时是否展示广告 |
3.22 插件体系四段与 [audit]
| 段 | 内容(实测) | 说明 |
|---|---|---|
| [pluginPaths] | packages=/plugins/etc/、plugins=/plugins/、admin=/www/admin/plugins/、var=/var/plugins/ | 插件目录布局 |
| [pluginSettings] | enableOnInstall=1、useMergedFunctions=1 | 装完即启用;合并投递函数提升性能 |
| [plugins] | openXBannerTypes、openXDeliveryLimitations、openXReports、openXDeliveryCacheStore、openXInvocationTags、openXDeliveryLog、openXVideoAds、reviveMailer、reviveMaxMindGeoIP2、apVideo 全部 =1 | 向导安装的 10 个插件注册表 |
| [pluginGroupComponents] | oxHtml、oxText、Client、Geo、Site、Time、oxCacheFile、oxMemcached、oxLogClick、oxLogConversion、vast*、rvMailer*、rvMaxMindGeoIP2*、apVideo* 等 30 项 | 插件内部组件细粒度注册表 |
| [audit] | enabled=1 | 操作审计(后台 Changes 页可查谁改了什么) |
四、插件自带配置组
以下 section 由插件安装时写入,属于"插件参数区":
| 段 | 关键参数(实测值) | 说明 |
|---|---|---|
| [deliveryHooks] | postInit、cacheStore、cacheRetrieve、preLog、logClick、logConversion、logImpression、logRequest、logImpressionVast | 组件钩子注册表(投递引擎按它挂载插件逻辑),手工装卸插件后由系统重建 |
| [Client] | sniff=1 | 客户端识别(浏览器/设备解析) |
| [oxCacheFile] | cachePath= | 文件缓存路径(空 = var/cache/) |
| [oxMemcached] | memcachedServers=、memcachedExpireTime= | 切换 memcached 缓存后端时填服务器列表 |
| [oxInvocationTags] | isAllowedAsync=1、isAllowedAdjs=1、isAllowedAdframe=1、isAllowedAdview=0、isAllowedAdviewnocookies=1 | 可用的调用标签开关(avw 标签默认禁用) |
| [vastOverlayBannerTypeHtml] | isVastOverlayAsTextEnabled=1 等 3 项 | VAST 浮层形态 |
| [vastServeVideoPlayer] | isAutoPlayOfVideoInOpenXAdminToolEnabled=0 | 播放器自动播放 |
| [rvMailerSMTP] | tls=、hostname=localhost、port=25、user=、password= | SMTP 投递(装 reviveMailer 后接外部邮件服务在这里配) |
| [rvMailerMailgun] / [rvMailerMandrill] / [rvMailerSendgrid] | key=、domain=、region=、api=1 | 三方邮件服务密钥 |
| [rvMaxMindGeoIP2] | mmdb_paths=、account_id=、license_key= | MaxMind GeoIP2 数据库路径与许可证(地域定向的数据源) |
五、修改与生效:正确的姿势
- 后台优先:绝大多数参数(界面、日志、维护、邮件等)在后台 Settings 界面修改即可,系统会自己写回 conf 文件并处理联动;
- 手工编辑 conf:直接改
var/<host>.conf.php对下一次请求即时生效,但注意两类缓存——- 投递缓存(
var/cache/,有效期 [delivery] cacheExpire=1200 秒):改投递相关参数后可清空 var/cache/ 立即生效; - 编译后的投递引擎(
www/delivery/,由www/delivery_dev/模板编译而来):凡涉及 [file]、[var]、[deliveryHooks] 这类"改变投递代码形态"的修改,必须重编译——php scripts/maintenance/delivery/rebuild.php <host>,实测会输出STARTING TO RE-COMPILE THE DELIVERY ENGINE FILES(详见 CLI 指南);
- 投递缓存(
- 改数据库口令:conf 的 [database] 与数据库端要同步改,改完可先跑一次 maintenance.php 验证连接;
- 备份:动手前
cp var/<host>.conf.php var/<host>.conf.php.bak(.bak 不会被加载,但注意它同样含敏感信息,别放进 Web 可访问目录)。
六、常见问题
6.1 用新域名访问,后台/投递行为异常
主机名路由(2.2 节)决定:用域名访问时若 var/<域名>.conf.php 不存在,会经 default.conf.php 的 realConfig 兜底到现有配置——系统不会报错,但 [webpath] 里仍是旧主机名,生成的广告代码全指向旧地址。正确做法:要么保持访问主机名与安装时一致,要么改 [webpath] 五项并同步更新已分发的广告代码。
6.2 CLI 工具报 "no host as a parameter"
CLI 没有 $_SERVER['HTTP_HOST'],必须显式传主机名(与 conf 文件名同名):php scripts/maintenance/maintenance.php 10.89.71.2。源码依据:init-parse.php 第 69 行 $_SERVER['HTTP_HOST'] = trim($GLOBALS['argv'][1])。
6.3 改了 cacheExpire/定向,投放行为没变
投递缓存未过期(默认 20 分钟)。清 var/cache/ 或等过期;涉及投递引擎形态的改动还要跑 delivery/rebuild.php(第五节)。
6.4 var/debug.log 暴涨
[log] priority=7(DEBUG)或 [ui] gzipCompression 异常时可能产生大量日志。生产保持 priority=6;排障完记得改回。
6.5 忘记后台密码
改密码不是改 conf(conf 里不存后台口令,口令在 rv_users 表做哈希)。用数据库管理员账号在后台登录页走密码找回([email] 邮件可用时),或临时建新管理员后重置。
七、参考链接
- 选型与背景:本站《Revive Adserver 介绍与选型指南》
- 安装与部署:本站《Ubuntu 22.04 安装 Revive Adserver 6.0.8 指南》
- 运维命令:本站《Revive Adserver 6.0.8 常用 CLI 命令与工具详解》
- 官方文档主页:https://www.revive-adserver.com/docs/
- 源码仓库(配置加载逻辑见 init-parse.php、lib/OA/Config 相关文件):https://github.com/revive-adserver/revive-adserver