WackoWiki 6.3.0 配置参数详解

拆解 WackoWiki 6.3.0 的四层配置体系,逐组说明 config/config_defaults.php 与 config/config.php 参数、默认值、实测值、修改方式与缓存清理,并给出可用于生产的基础、安全、上传、订阅与缓存模板。

WackoWikiWackoWikiPHPMariaDBMySQL知识库2026/11/02

WackoWiki 6.3.0 配置参数详解

目标:把 WackoWiki 6.3.0 的配置体系拆成“默认值 → 站点配置文件 → 数据库设置 → 运行时缓存”四层,逐组说明关键参数、默认值、实测值与修改方式,并给出可直接套用的生产模板。本文基于 WackoWiki 6.3.0(PHP 8.3.36 + MariaDB 11.4.13)实测,命令与回显照抄。软件定位与选型见《WackoWiki 介绍与选型指南》,HTTP 接口调用见《WackoWiki 6.3.0 API 使用详解》。

一、环境信息

  • WackoWiki 版本:6.3.0(官方发布日期 2026-07-18)
  • 应用运行环境:Apache 2.4.69 + PHP 8.3.36
  • 数据库:MariaDB 11.4.13(11.4.13-MariaDB-ubu2404)
  • 站点根目录:/var/www/html(对应宿主机源码目录 src/)
  • 配置文件:config/config.php(站点级)、config/config_defaults.php(内置默认值)
  • 配置缓存:_cache/config/config.php
  • 后台入口:/admin.php(需 Wiki 管理员会话 + 恢复口令)
  • 演示账号:root / q1w2e3r4(实验环境短口令;生产按 ≥15 位设置)
  • 实测站点名:WackoWiki Demo;首页:HomePage

二、前置条件

  1. 能读写站点根目录下的 config/、_cache/、file/、xml/。
  2. 有数据库客户端或能执行 mariadb 命令的入口,便于核对 wacko_config 表。
  3. 已用管理员账号登录前台,并能通过 /admin.php 的恢复口令校验。
  4. 修改任何参数前先备份:
cd /opt/wackowiki/app/wackowiki-6.3.0/src
cp config/config.php config/config.php.bak-$(date +%F)
docker compose exec -T db mariadb-dump -uroot -pq1w2e3r4 --single-transaction wackowiki > /opt/wackowiki/backup-config-$(date +%F).sql

⚠️ 注意:WackoWiki 的配置不是“改一个文件就全部生效”。config.php、数据库 config 表与 _cache/config/config.php 三层可能同时存在同一个键,排查时必须按“数据库 > config.php > 默认值 > 缓存”的顺序确认最终值。

三、参数查看与修改方式

3.1 配置文件的分工

WackoWiki 6.3.0 的配置入口只有两个 PHP 文件:

文件作用是否应手工编辑
config/config_defaults.php内置默认值,定义全部可用键与默认行为禁止直接编辑;升级会被覆盖
config/config.php安装器写入的站点级配置,含数据库连接、base_url、种子与恢复口令可编辑;改后需清缓存
数据库 wacko_config 表后台管理面板写入的偏好设置通过后台修改;直接改库需清缓存
_cache/config/config.php上述配置的序列化缓存不手工编辑;删除后自动重建

💡 关于 wakka.config.php:WackoWiki 6.3.0 源码中不存在 wakka.config.php。该文件名属于 WakkaWiki 时代的配置约定;WackoWiki 已统一为 config/config.php。如果从旧 WakkaWiki 迁移,不能把旧 wakka.config.php 直接复制过来,必须按 WackoWiki 的键名(如 db_driver、db_host、table_prefix、system_seed)重建。

3.2 优先级与生效顺序

class/settings.php 的加载逻辑可以简化为:

  1. 读 config/config_defaults.php 得到默认值;
  2. 读 config/config.php,用 array_merge() 覆盖默认值;
  3. 连接数据库,读 wacko_config 表,逐行覆盖前两层;
  4. 若 _cache/config/config.php 存在且可读,直接反序列化该缓存,跳过前三步;
  5. 后台保存设置时更新数据库,并重建缓存。

因此实际生效值是:

数据库 wacko_config  >  config/config.php  >  config_defaults.php
                    (缓存 _cache/config/config.php 存在时,直接以缓存为准)

3.3 查看当前配置

查看站点级配置:

cd /opt/wackowiki/app/wackowiki-6.3.0/src
php -r 'require "config/config.php"; var_export($wacko_config);'

实测输出(节选):

array (
  'base_url' => 'http://localhost:8140/',
  'db_charset' => 'utf8mb4',
  'db_collation' => 'utf8mb4_unicode_520_ci',
  'db_driver' => 'mysqli',
  'db_engine' => 'InnoDB',
  'db_vendor' => 'mariadb',
  'db_host' => 'db',
  'db_port' => '3306',
  'db_name' => 'wackowiki',
  'db_user' => 'wacko',
  'db_password' => 'q1w2e3r4',
  'sql_mode' => '0',
  'table_prefix' => 'wacko_',
  'system_seed' => 'u^U84ey~0%#}G98zo298',
  'recovery_password' => '$2y$10$oit5QUJ842YFxNPqH3MOoO7CF.BipVA3bOSRtDsF6cE11yhfT8h.q',
  'hashid_seed' => 'rr!xY51C&yp(4*_66&2]',
  'wacko_version' => '6.3.0',
)

查看数据库覆盖值:

docker compose exec -T db mariadb -uroot -pq1w2e3r4 -N -e \
  "SELECT config_name, LEFT(config_value,80) FROM wackowiki.wacko_config \
   WHERE config_name IN ('site_name','root_page','rewrite_mode','default_read_acl', \
   'default_write_acl','upload','upload_max_size','cache','cache_ttl','enable_feeds', \
   'xml_sitemap','timezone','language','allow_registration') ORDER BY config_name;"

实测输出:

allow_registration	0
cache	1
cache_ttl	600
default_read_acl	*
default_write_acl	$
enable_feeds	1
language	en
rewrite_mode	1
root_page	HomePage
site_name	WackoWiki Demo
timezone	UTC
upload	admins
upload_max_size	512000
xml_sitemap	0

3.4 修改方式

  • 安装器阶段:通过 Site Configuration / Database Configuration 页写入 config.php。
  • 日常偏好:通过 /admin.php 的 Preferences 模块修改,写入数据库 wacko_config 表。
  • 连接与密钥类:手工编辑 config/config.php,改后删除 _cache/config/config.php。
  • 清理缓存:后台 Main Menu 的 Purge cache 勾选 Config cache 提交;或直接删除缓存文件:
rm -f /opt/wackowiki/app/wackowiki-6.3.0/src/_cache/config/config.php

⚠️ 注意:直接删除缓存文件后,下一次请求会重新读 config.php 与数据库。若只改 config.php 而不清缓存,页面仍会使用旧值,表现为“文件里明明改了但站点没变化”。

四、参数总览

WackoWiki 6.3.0 的默认参数约 200 个,后台按用途拆成 12 个模块:Basic、Appearance、System、Permissions、Security、Formatter、Upload、Filter、Email、Notifications、Syndication、Pages。下表按“部署与运维最常用”的维度先给总览,详细解释见第五章。

分组代表参数默认值/实测值影响面
数据库db_driver、db_host、db_name、db_user、db_password、db_charset、table_prefixmysqli、db、wackowiki、wacko、q1w2e3r4、utf8mb4、wacko_连接与建表
站点site_name、site_desc、root_page、base_url、admin_nameWackoWiki Demo、Cover what you do best...、HomePage、http://localhost:8140/、Root页面标题、首页、链接生成
URL 与重写rewrite_mode、canonical、tls、cookie_prefix、reverse_proxy1、0、0、空、0短 URI、HTTPS、反代
会话与缓存session_store、session_length、cache、cache_ttl、cache_sql1、30、1、600、0登录状态、页面性能
权限default_read_acl、default_write_acl、default_comment_acl、default_create_acl、default_upload_acl、acl_lock*、$、$、$、Admins、0新页面默认权限
编辑与修订max_page_size、section_edit、review、hide_revisions、default_diff_mode2097152、1、0、0、3页面大小、段落编辑、审核、差异视图
上传upload、upload_images_only、upload_max_size、upload_quota、upload_quota_per_useradmins、1、512000、0、104857600谁能传、传什么、传多大
安全enable_security_headers、csp、referrer_policy、form_token_time、max_login_attempts、pwd_admin_min_chars1、1、7、7200、3、15响应头、CSRF、登录限制
订阅与 SEOenable_feeds、xml_changes_link、opensearch、xml_sitemap、noindex1、1、0、0、0RSS/XML、站点地图
邮件enable_email、enable_email_notification、phpmailer_method、smtp_host、smtp_port1、1、mail、localhost、587通知与找回
语言与主题language、multilanguage、theme、allow_themes、timezoneen、0、default、0、UTC界面语言、皮肤、时区
日志与维护debug、log_level、log_default_show、enable_referrers、keep_deleted_time0、0、1、0、0调试、日志、回收站

五、核心参数分类详解

5.1 数据库与表前缀

参数默认值实测值说明
db_driver空mysqli可选 mysqli、mysql_pdo、sqlite、sqlite_pdo;安装器推荐 MySQLi
db_hostlocalhostdb数据库主机;Compose 中填服务名,不能填 localhost
db_port空(默认端口)3306非默认端口时必须显式填写
db_namewackowackowiki数据库名,必须已存在
db_user空wacko应用连接用户
db_password空q1w2e3r4应用连接口令;生产用强口令并通过环境变量注入
db_charsetutf8mb4utf8mb4完整 UTF-8;不要改成 utf8,否则 emoji 与部分中文扩展字符会丢
db_collationutf8mb4_unicode_520_ciutf8mb4_unicode_520_ci排序规则;与字符集匹配
db_engineInnoDBInnoDB表引擎;InnoDB 支持事务与崩溃恢复
db_vendormysqlmariadb数据库厂商标识,影响少量兼容分支
table_prefixwacko_wacko_同库多实例隔离;已有数据不可随意改
sql_mode000=Server、1=Session、2=Lax、3=Strict;严格模式更安全但可能暴露旧代码兼容问题

💡 说明:db_* 与 table_prefix 属于“连接级参数”,后台管理面板不提供修改入口,必须改 config/config.php。改 table_prefix 等于换一套表,已有数据不会自动迁移。

5.2 站点标识与 URL

参数默认值实测值说明
site_nameMyWikiSiteWackoWiki Demo浏览器标题、页头、订阅标题、邮件主题的基础名
site_descCover what you do best. Link to the rest.同默认站点简介,影响页头与 SEO 描述
root_pageHomePageHomePage首页页面名;必须存在,否则首页 404
base_url按请求自动推导http://localhost:8140/站点根 URL;反向代理/HTTPS 必须改成外部地址
canonical00是否输出 canonical 链接;多域名站点时按需开启
rewrite_mode按 mod_rewrite 探测11=短 URI,0=查询串;关闭后链接形如 /index.php?page=...
tls00是否强制 TLS;生产启用 HTTPS 后设为 1
tls_implicit00隐式 TLS(如 SMTPS)场景使用
cookie_prefix空空多实例同域部署时用于隔离 Cookie
reverse_proxy00是否信任反向代理头;开启后必须配合 reverse_proxy_addresses
reverse_proxy_header空空反代传递的客户端 IP 头名
admin_name空Root站点负责人显示名;不参与权限判定

⚠️ 注意:base_url 写错是“页面能开但 CSS/上传/订阅全坏”的常见原因。它决定静态资源、附件与 feed 链接的绝对地址;迁移域名后必须同步修改并清缓存。

5.3 会话、缓存与性能

参数默认值实测值说明
session_store111=文件、2=数据库;SQLite 只支持文件
session_length3030Cookie/会话有效期(天);后台显示 Time left: 30 minute(s) 是后台会话计时
allow_persistent_cookie11是否允许“记住我”持久 Cookie
cache01页面缓存总开关;实测数据库覆盖为 1
cache_ttl600600页面缓存有效期(秒)
cache_sql00SQL 查询缓存;读多写少时可开
cache_sql_ttl600600SQL 缓存有效期(秒)
session_notice00会话终止提示
login_notice00登录欢迎提示

💡 说明:WackoWiki 的缓存分配置、页面、查询、订阅、模板、缩略图多层。后台 Purge cache 可以分别勾选清理;生产环境建议至少开启 cache 与 cache_ttl=600,并在主题/配置变更后清缓存。

5.4 权限与 ACL

参数默认值实测值说明
default_read_acl**新页面默认可读:* 所有人、$ 注册用户、组名/用户名、! 前缀表示拒绝
default_write_acl$$新页面默认可写
default_comment_acl$$新页面默认可评论
default_create_acl$$新页面默认可创建子页面
default_upload_aclAdminsAdmins新页面默认可上传附件
rename_global_aclAdminsAdmins全局重命名权限
acl_lock00是否锁定 ACL,禁止页面所有者修改
hide_locked11对无权限用户隐藏锁定页面入口
remove_onlyadmins00是否仅管理员可删除页面
owners_can_remove_comments11页面所有者可删除评论
categories_handler11分类处理器开关/模式
moders_can_edit33版主可编辑范围/级别

ACL 语法实测要点:

  • 多个用户/组用换行分隔,不是逗号:
Admins
Moderator
  • * 表示所有人,$ 表示仅注册用户;前置 ! 表示拒绝。
  • 保存成功回显:
Access control lists updated
  • 把 read_acl 改为 Admins 后,匿名访问页面实测返回:
You aren't allowed to read this page.

⚠️ 注意:ACL 同时影响页面、修订、附件与订阅输出。只改 read_acl 而不检查附件/订阅,可能出现“正文看不到但 feed 仍泄露标题”的错觉;实际上 feed 也会走权限判定,测试时应一并验证。

5.5 页面编辑、修订与显示

参数默认值实测值说明
max_page_size2097152(2MB)2097152单页最大字节数;大页面应拆分
edit_summary00是否强制填写编辑摘要
minor_edit00是否允许标记小修改
section_edit11段落级编辑;提高长页面编辑效率
review00是否需要审核后发布
enable_comments11页面评论开关
hide_revisions00是否对普通用户隐藏修订历史
show_permalink00是否显示永久链接
diff_modes0,1,2,3,4,5同默认可用差异视图模式
default_diff_mode33默认差异视图
hide_toc00隐藏目录
hide_index00隐藏索引
tree_level11树形层级显示
attachments_handler22附件处理器模式
source_handler11源码查看处理器开关
export_handler22导出处理器模式

💡 说明:default_diff_mode=3 对应“并排(side by side)”差异视图;diff_modes 控制下拉框可选模式。修订页实测显示:

3 11/02/2026 10:05 — (344.0 B) +69 by Root
2 11/02/2026 10:03 — (275.0 B) +81 by Root
1 11/02/2026 10:02 — (194.0 B) +194 by Root

5.6 上传与媒体

参数默认值实测值说明
uploadadminsadmins0 关闭、admins 管理员、moderator 版主、reviewer 审核员、1 注册用户
upload_images_only11仅允许图片;需要文档附件时改为 0
upload_max_size512000(500 KiB)512000单文件上限;后台以 KiB 显示
upload_quota00全站总配额;0 表示不限制
upload_quota_per_user104857600(100 MiB)104857600每用户配额
upload_translit11文件名转写
upload_translit_lower00转写是否转小写
upload_allowed_exts空空白名单;空表示不启用白名单
upload_banned_exts长列表同默认禁止扩展名:php、phtml、exe、jsp、html、js 等
check_mimetype11校验 MIME 与扩展名一致性
mime_type_exclusionsHTML/JS/PHP 等同默认拒绝危险 MIME
svg_sanitizer11SVG 清洗;上传 SVG 时必须开启
create_thumbnail00自动生成缩略图
max_thumb_width150150缩略图最大宽度
max_image_area00图片面积限制;0 表示自动/不限制
max_image_width00图片宽度限制
jpeg_quality8080JPEG 质量

⚠️ 注意:upload_max_size 只是 WackoWiki 层限制,PHP 的 upload_max_filesize 与 post_max_size 必须不小于它,否则表单会在 PHP 层被截断。实测上传 45 字节文本附件返回 File upload successful,附件详情 Mimetype: text/plain、Size: 45.0 B。

5.7 安全、登录与表单令牌

参数默认值实测值说明
enable_security_headers11输出 CSP、Permissions-Policy、Referrer-Policy、X-Frame-Options、X-Content-Type-Options
csp11Content-Security-Policy 开关;实测响应头为 default-src 'self'...
permissions_policy11实测为 camera=(),microphone=(),midi=(),geolocation=(),browsing-topics=()
referrer_policy77实测响应头 strict-origin-when-cross-origin
form_token_time72007200表单令牌有效期(秒);过长会扩大 CSRF 窗口
max_login_attempts33前台登录失败上限
ap_max_login_attempts44后台恢复口令失败上限;超过后锁定
ap_failed_login_count00后台失败计数
pwd_min_chars1010普通用户口令最小长度
pwd_admin_min_chars1515管理员口令最小长度;与向导页 minlength=15 对应
pwd_unlike_login11口令不得与登录名相同
pwd_char_classes00是否要求多字符类别
allow_registration00自助注册开关;内网建议关闭
approve_new_user00新用户是否需要审批
enable_captcha11验证码总开关
captcha_new_page11新建页面验证码
captcha_edit_page11编辑页面验证码
anonymize_ip00是否匿名化 IP;GDPR 场景可开
noindex00是否禁止搜索引擎索引
enable_system_message11全站系统消息开关

⚠️ 注意:后台恢复口令不是普通用户口令,它由 config.php 的 recovery_password 哈希控制,与 pwd_admin_min_chars 不是同一条校验链路。后台连续失败达到 ap_max_login_attempts 会锁定,需要清理 config/lock_ap 或数据库计数后恢复。

5.8 订阅、SEO 与站点地图

参数默认值实测值说明
enable_feeds11RSS/XML 订阅总开关
xml_changes_link11变更订阅链接指向:1=差异视图、2=修订页、3=修订列表、4=当前页
opensearch00OpenSearch 描述文件
xml_sitemap00XML 站点地图
xml_sitemap_gz00站点地图 gzip
xml_sitemap_time11站点地图时间粒度
enable_referrers00是否记录来源页
referrers_purge_time11来源记录保留天数

实测订阅输出:

curl -sS -o /dev/null -w '%{http_code} %{content_type} %{size_download}\n' \
  http://localhost:8140/xml/changes_wackowikidemo.xml
200 application/xml 970

💡 说明:站点级订阅文件名由站点名生成(WackoWiki Demo → changes_wackowikidemo.xml)。改名后旧文件不会自动删除,需要手工清理 xml/ 并重新保存页面触发重建。

5.9 邮件与通知

参数默认值实测值说明
enable_email11邮件总开关
enable_email_notification11通知邮件开关
phpmailer_methodmailmailmail 走本机 MTA;smtp 走 SMTP
smtp_hostlocalhostlocalhostSMTP 主机
smtp_port587587SMTP 端口;465 需配 smtp_connection_mode=ssl
smtp_username空空SMTP 用户
smtp_password空空SMTP 口令
smtp_auto_tls00自动 STARTTLS
email_fromWackoWikiWackoWiki发件人显示名
email_subject_prefix空空主题前缀;空时用 site_name
notify_minor_edit11小修改是否通知
notify_page22页面变更通知级别
notify_comment11评论通知
notify_new_user_account11新用户通知
notify_upload11上传通知
allow_massemail00群发邮件
allow_intercom00站内信

⚠️ 注意:mail 方式依赖本机 MTA(如 Postfix)。只改 WackoWiki 参数而不装 MTA,页面会提示发送成功但邮件实际进队列/被丢弃;生产建议用 smtp 并显式配置主机、端口、账号与 TLS。

5.10 语言、主题与时区

参数默认值实测值说明
languageenen默认界面语言;安装器可选 30 多种
multilanguage00多语言模式;启用后页面可设置 page_lang
allowed_languages00允许的语言集合;0 表示全部
themedefaultdefault默认主题
allow_themes00是否允许用户切换主题
allow_themes_per_page00是否允许按页设置主题
theme_color空空主题主色
site_logowacko_logo.png同默认站点 Logo
logo_display00是否显示 Logo
logo_height5050Logo 高度
logo_width108108Logo 宽度
date_formatdd.MM.y同默认日期格式
time_formatHH:mm同默认时间格式
timezoneUTCUTC时区;中文站点可改 Asia/Shanghai
american_date11美式日期显示

💡 说明:timezone 只影响显示,不改变数据库存储的 UTC 时间。改成 Asia/Shanghai 后,页面时间会 +8 小时,但订阅 pubDate 仍按服务器/UTC 输出,跨时区阅读时要区分。

5.11 日志、调试与维护

参数默认值实测值说明
debug00调试模式;生产保持 0
debug_admin_only00仅管理员可见调试信息
debug_sql_threshold00慢 SQL 阈值(秒);0 不记录
log_level00日志级别;0 关闭,往上记录更多事件
log_default_show11后台默认显示日志
log_purge_time00日志保留天数;0 不自动清理
keep_deleted_time00删除页面保留天数
pages_purge_time00页面回收站清理周期
enable_counters11访问计数
ext_bad_behaviour00Bad Behaviour 扩展

⚠️ 注意:debug=1 会把路径、SQL、配置细节输出到页面,生产必须关闭;排查完立即改回 0 并清缓存。

5.12 密钥、恢复口令与版本

参数默认值实测值说明
system_seed安装器随机生成u^U84ey~0%#}G98zo298系统种子;用于恢复口令哈希等,长度必须 ≥20
hashid_seed安装器随机生成rr!xY51C&yp(4*_66&2]Hash ID 种子;用于隐藏数字 ID
recovery_password空$2y$10$...后台恢复口令的哈希,绝不是明文
wacko_version安装器写入6.3.0版本标识;不要手工改,升级由安装器维护
trusted_domains空空预留/未使用

恢复口令的生成公式:

password_hash(
  base64_encode(hash('sha256', sha1(system_seed) . ap_password, true)),
  PASSWORD_DEFAULT
)

实测生成脚本与输出:

<?php
$seed = 'u^U84ey~0%#}G98zo298';
echo password_hash(base64_encode(hash('sha256', hash('sha1', $seed) . 'q1w2e3r4', true)), PASSWORD_DEFAULT), "\n";
$2y$10$oit5QUJ842YFxNPqH3MOoO7CF.BipVA3bOSRtDsF6cE11yhfT8h.q

⚠️ 注意:system_seed 一旦更换,所有基于它的哈希(包括恢复口令)都会失效。更换 system_seed 后必须重新生成 recovery_password,否则后台永远登录不进去。

六、生产配置模板

以下模板以“内网知识库、50–200 用户、MariaDB、HTTPS 反代”为场景。config.php 只保留安装器生成、且不建议后台覆盖的连接与密钥项;其余偏好建议通过后台写入数据库。

<?php
// config/config.php(生产模板,密钥项按实际替换)
$wacko_config = [
	// 站点与 URL
	'base_url'              => 'https://wiki.example.com/',
	'rewrite_mode'          => 1,
	'tls'                   => 1,
	'canonical'             => 1,

	// 数据库
	'db_driver'             => 'mysqli',
	'db_host'               => 'db',
	'db_port'               => '3306',
	'db_name'               => 'wackowiki',
	'db_user'               => 'wacko',
	'db_password'           => '${WACKO_DB_PASSWORD}',
	'db_charset'            => 'utf8mb4',
	'db_collation'          => 'utf8mb4_unicode_520_ci',
	'db_engine'             => 'InnoDB',
	'db_vendor'             => 'mariadb',
	'table_prefix'          => 'wacko_',

	// 密钥:保留安装器生成值,不要手工缩短
	'system_seed'           => '<安装器生成的 20+ 位随机串>',
	'hashid_seed'           => '<安装器生成的随机串>',
	'recovery_password'     => '<按 5.12 公式生成的哈希>',
	'wacko_version'         => '6.3.0',
];

后台建议值(写入数据库 wacko_config):

参数建议值理由
cache1降低数据库压力
cache_ttl60010 分钟延迟可接受
cache_sql1读多写少的内部站点
default_read_acl$内网默认仅注册用户可读
default_write_aclAdmins 或 $按协作范围收紧
default_upload_aclAdmins先收紧,再按需放开
uploadadmins防止任意用户上传
upload_images_only1降低可执行文件风险
upload_max_size2048000(2 MiB)与 PHP 限制对齐
allow_registration0内网不开放自助注册
pwd_admin_min_chars15与向导一致
max_login_attempts3防暴力破解
ap_max_login_attempts4后台恢复口令保护
enable_feeds0不需要外部订阅时关闭,减少信息暴露
xml_sitemap0内网不需要搜索引擎
noindex1禁止搜索引擎索引
timezoneAsia/Shanghai中文团队显示习惯
languagezh中文界面
debug0生产关闭

⚠️ 注意:模板中的 ${WACKO_DB_PASSWORD} 是占位符,WackoWiki 不会自动读取环境变量;实际部署时应由部署脚本生成 config.php 时替换,或在受控文件中写真实值并限制权限为 640。不要把真实生产口令写进公开仓库。

七、常见问题

7.1 改了 config.php 但页面没变化

原因:_cache/config/config.php 缓存仍存在,或数据库 wacko_config 表覆盖了 config.php 的值。

处理:先查数据库是否有同名键:

docker compose exec -T db mariadb -uroot -pq1w2e3r4 -N -e \
  "SELECT config_name, config_value FROM wackowiki.wacko_config WHERE config_name='upload';"

如果有值,以数据库为准;要么在后台改,要么删除该行。然后清配置缓存:

rm -f /opt/wackowiki/app/wackowiki-6.3.0/src/_cache/config/config.php

7.2 后台 Preferences 保存后报错或无变化

原因:后台表单提交带 _nonce 与 _action,会话过期或令牌失效时会被拒绝;另外部分参数有范围校验。

处理:重新登录前台与后台,刷新页面后重新提交;保存后看页面顶部 msg 提示。仍无变化时按 7.1 检查缓存与数据库。

7.3 修改 timezone 后时间仍不对

timezone 只控制显示。数据库中的 created/modified 以 UTC 存储,订阅 pubDate 也按 UTC 输出。若希望全站统一到本地时间,除了改 timezone,还要确认 PHP 的 date.timezone 与数据库会话时区;三者不一致时会出现“页面时间对、日志时间不对”。

7.4 上传权限改了但仍不能上传

上传受三层限制:

  1. 全局 upload(谁能上传);
  2. 页面 ACL 的 upload_acl(这个页面谁能上传);
  3. upload_images_only、upload_max_size、upload_banned_exts、check_mimetype(传什么、多大)。

按“全局 → 页面 → 文件类型/大小”的顺序排查。实测把 upload 保持 admins、upload_acl=Admins 时,管理员上传 45 字节文本成功;普通注册用户会被拒绝。

7.5 恢复口令忘了怎么办

按 5.12 的公式,用 system_seed 与目标口令重新生成哈希,写入 config.php 的 recovery_password,删除配置缓存,再登录后台。不要直接把 recovery_password 改成明文,password_verify() 不会通过。

7.6 站点地图/订阅文件不生成

检查 enable_feeds、xml_sitemap 是否为 1,xml/ 目录是否对 Web 进程可写。实测 xml/ 不可写时,/xml/changes_<站点名>.xml 返回 404 与 SVG 错误图;修正权限并保存页面后恢复。

八、参考链接

WackoWiki 6.3.0 配置参数详解 - Quzuo