MediaWiki 1.46 配置参数详解

LocalSettings.php 分域逐项拆解:安装器生成配置全文、核心参数含义与官方默认值、改动后的实测行为验证(只读/权限/皮肤/缓存/上传/密码策略),附 16GB 单机生产配置模板。

MediaWikiMediaWiki知识库2026/10/22

MediaWiki 1.46 配置参数详解

目标:逐域拆解 MediaWiki 1.46 的 LocalSettings.php 配置体系——安装器生成的真实配置全文、每个核心参数的含义与官方默认值、改动后的实测行为验证,并给出可直接落地的生产配置模板。已在 Ubuntu 22.04 + Apache 2.4.52 + MySQL 8.0.46 + PHP 8.3.36 + MediaWiki 1.46.2 环境逐项实测,所有回显为真实记录。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64)
  • Web 服务器:Apache 2.4.52(mod_php 8.3)
  • 数据库:MySQL 8.0.46-0ubuntu0.22.04.4,库名 wikidb
  • PHP:8.3.36(CLI 与 Apache 模块一致)
  • MediaWiki:1.46.2(官方 tarball 安装,安装过程见 《Ubuntu 22.04 安装 MediaWiki 1.46 指南》)
  • 配置文件:/var/www/mediawiki/LocalSettings.php(安装器生成,实测 4366 字节)
  • 演示站点:Qzuo Wiki(http://localhost/mediawiki/,Short URL 后 http://localhost/wiki/首页)
  • 参数默认值依据:tarball 内 includes/MainConfigSchema.php(1.46.2)与官方手册 https://www.mediawiki.org/wiki/Manual:Configuration_settings

二、前置条件

  1. 已按 《Ubuntu 22.04 安装 MediaWiki 1.46 指南》 完成安装(或已有可运行的 1.46.x 站点)。
  2. 能以 root 或 sudo 编辑 /var/www/mediawiki/LocalSettings.php;每次修改后无需重启服务(PHP 每次请求都会重新加载该文件),但建议改前备份:cp LocalSettings.php LocalSettings.php.bak。
  3. 了解 MediaWiki 的两层配置结构:核心默认值定义在 includes/MainConfigSchema.php(只读参考,禁止直接改),站点覆盖值写在站点根目录 LocalSettings.php(所有定制都改这里,文件头部注释也如此强调)。

三、参数查看与修改方式

3.1 三个官方查看通道

① 读安装器生成的 LocalSettings.php(最直观,本文底稿)。② 查 MainConfigSchema.php:每个参数带注释与默认值,是 1.39+ 的参数字典(实测查 $wgSitename 默认值):grep -n 'public const Sitename' -A6 includes/MainConfigSchema.php:

228:    public const Sitename = [
229-            'default' => 'MediaWiki',
230-    ];

(即 $wgSitename 官方默认值为字符串 MediaWiki。)③ CLI 运行时值导出:维护脚本 getConfiguration.php 支持 --regex 过滤与 --format json/php/serialize/vardump(实测帮助节选):

php maintenance/run.php getConfiguration --help
Script specific options:
    --format <FORMAT>: json, php, serialize, vardump
    --iregex <IREGEX>: same as --regex but case insensitive
    --json-partial-output-on-error: Use JSON_PARTIAL_OUTPUT_ON_ERROR
        flag with json_encode(). ...

实测(默认 php 序列化格式,wgEnableUploads 当前值):

php maintenance/run.php getConfiguration --regex 'wgEnableUploads|wgFileExtensions'
a:2:{s:15:"wgEnableUploads";b:1;s:16:"wgFileExtensions";a:7:{i:0;s:3:"png";i:1;s:3:"gif";i:2;s:3:"jpg";i:3;s:4:"jpeg";i:4;s:3:"webp";i:5;s:4:"pdf";i:6;s:3:"svg";}}

即 wgEnableUploads=true(布尔)且 wgFileExtensions 为 7 个元素的字符串数组——与 LocalSettings.php 中写入的值一致,可用来验证配置是否生效。

3.2 修改方式与生效验证

修改 LocalSettings.php 保存即生效(无缓存重载动作),但页面 HTTP 缓存可能返回 304,验证时给 URL 加一个无关参数(如 ?cbtest1)强制穿透。本文每个参数的「实测行为」均按此方法采集。

四、安装器生成的配置全文(实测底稿)

以下是 1.46.2 安装器在 --lang=zh 下自动生成的 LocalSettings.php 全文(实测原样照抄,含安装器写入的分节注释;$wgSecretKey/$wgUpgradeKey 为本环境生成值):

<?php
# This file was automatically generated by the MediaWiki 1.46.2
# installer. If you make manual changes, please keep track in case you
# need to recreate them later.
#
# See includes/MainConfigSchema.php for all configurable settings
# and their default values, but don't forget to make changes in _this_
# file, not there.
#
# Further documentation for configuration settings may be found at:
# https://www.mediawiki.org/wiki/Manual:Configuration_settings

# Protect against web entry
if ( !defined( 'MEDIAWIKI' ) ) {
	exit;
}

## Uncomment this to disable output compression
# $wgDisableOutputCompression = true;

$wgSitename = "Qzuo Wiki";
$wgMetaNamespace = "Qzuo_Wiki";

## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
## https://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "/mediawiki";

## The protocol and server name to use in fully-qualified URLs
$wgServer = "http://localhost";

## The URL path to static resources (images, scripts, etc.)
$wgResourceBasePath = $wgScriptPath;

## The URL paths to the logo.  Make sure you change this from the default,
## or else you'll overwrite your logo when you upgrade!
$wgLogos = [
	'1x' => "$wgResourceBasePath/resources/assets/change-your-logo.svg",
	'icon' => "$wgResourceBasePath/resources/assets/change-your-logo-icon.svg",
];

## UPO means: this is also a user preference option

$wgEnableEmail = true;
$wgEnableUserEmail = true; # UPO

$wgEmergencyContact = "";
$wgPasswordSender = "";

$wgEnotifUserTalk = false; # UPO
$wgEnotifWatchlist = false; # UPO
$wgEmailAuthentication = true;

## Database settings
$wgDBtype = "mysql";
$wgDBserver = "localhost";
$wgDBname = "wikidb";
$wgDBuser = "root";
$wgDBpassword = "q1w2e3r4";

# MySQL specific settings
$wgDBprefix = "";
$wgDBssl = false;

# MySQL table options to use during installation or update
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";

# Shared database table
# This has no effect unless $wgSharedDB is also set.
$wgSharedTables[] = "actor";

## Shared memory settings
$wgMainCacheType = CACHE_ACCEL;
$wgMemCachedServers = [];

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads = false;
#$wgUseImageMagick = true;
#$wgImageMagickConvertCommand = "/usr/bin/convert";

# InstantCommons allows wiki to use images from https://commons.wikimedia.org
$wgUseInstantCommons = false;

# Periodically send a pingback to https://www.mediawiki.org/ with basic data
# about this MediaWiki instance. The Wikimedia Foundation shares this data
# with MediaWiki developers to help guide future development efforts.
$wgPingback = false;

# Site language code, should be one of the list in ./includes/Languages/Data/Names.php
$wgLanguageCode = "zh";

# Time zone
$wgLocaltimezone = "UTC";

## Set $wgCacheDirectory to a writable directory on the web server
## to make your wiki go slightly faster. The directory should not
## be publicly accessible from the web.
#$wgCacheDirectory = "$IP/cache";

$wgSecretKey = "451991902d4fc58d39747bc59be1412f4a37f6e1f75ee6a4e3efb536b961e33c";

# Changing this will log out all existing sessions.
$wgAuthenticationTokenVersion = "1";

# Site upgrade key. Must be set to a string (default provided) to turn on the
# web installer while LocalSettings.php is in place
$wgUpgradeKey = "67f1f4b298518567";

## For attaching licensing metadata to pages, and displaying an
## appropriate copyright notice / icon. GNU Free Documentation
## License and Creative Commons licenses are supported so far.
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
$wgRightsUrl = "";
$wgRightsText = "";
$wgRightsIcon = "";

# Path to the GNU diff3 utility. Used for conflict resolution.
$wgDiff3 = "/usr/bin/diff3";

## Default skin: you can change the default skin. Use the internal symbolic
## names, e.g. 'vector' or 'monobook':
$wgDefaultSkin = "vector-2022";

# Enabled skins.
# The following skins were automatically enabled:
wfLoadSkin( 'MinervaNeue' );
wfLoadSkin( 'MonoBook' );
wfLoadSkin( 'Timeless' );
wfLoadSkin( 'Vector' );


# End of automatically generated settings.
# Add more configuration options below.

解读:安装器按「站点标识 → 路径 → 邮件 → 数据库 → 缓存 → 上传 → 语言时区 → 安全密钥 → 版权 → 皮肤」的顺序写入分域配置;CLI 安装时还检测到了 APCu 并把 $wgMainCacheType 自动设为 CACHE_ACCEL(见 5.4 节)。下文第五章按域逐参数展开。

五、核心参数分类详解

5.1 站点标识域($wgSitename / $wgMetaNamespace / $wgLanguageCode / $wgLocaltimezone)

参数官方默认值含义
$wgSitename无(安装时必填)站点名,出现在 <title>、页脚、邮件主题
$wgMetaNamespace$wgSitename(空格转下划线)项目命名空间名(如 "Qzuo Wiki talk:" 的前缀)
$wgLanguageCode"en"站点界面语言,取值见 includes/Languages/Data/Names.php
$wgLocaltimezone"UTC"站点时区,影响签名时间戳、统计

实测 $wgSitename = "Qzuo 团队知识库";(改后立即请求首页):

curl -s 'http://localhost/wiki/首页' | grep -oE '<title>[^<]*'
<title>Qzuo 团队知识库

改回 "Qzuo Wiki" 后 <title> 恢复。$wgLanguageCode = "zh" 的效果在 CLI 安装回显中已经可见(安装进度与首页命名全部为中文,首页标题为「首页」)。

5.2 路径与 URL 域($wgScriptPath / $wgServer / $wgArticlePath / $wgResourceBasePath)

参数官方默认值含义
$wgScriptPath"/wiki"站点程序目录的 URL 前缀(本文环境 /mediawiki)
$wgServer按请求协议+Host 自动推断站点协议与主机名,如 http://localhost
$wgCanonicalServer取 $wgServer 值生成规范链接用的完整 URL(建议显式写,含 https)
$wgArticlePath"$wgScript/index.php/$1"页面 URL 形态;Short URL 时改为 "/wiki/$1"
$wgResourceBasePath$wgScriptPath静态资源(CSS/JS/图片)URL 前缀
$wgUsePathInfo按环境探测是否用 PATH_INFO 传标题(/wiki/页面名 需要 true)

Short URL 组合配置(实测生效,Apache 侧需要配套 Alias /wiki <站点目录>/index.php,见安装篇 9.2 节):

$wgScriptExtension = "php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
curl -s -o /dev/null -w '/wiki/首页 => %{http_code}\n' 'http://localhost/wiki/首页'
/wiki/首页 => 200

⚠️ 实测注意:$wgServer 在反代/多域名场景建议显式固定为对外域名(如 https://wiki.example.com),否则自引用链接会跟随请求头变化,可能被缓存放大成错误域名;$wgCanonicalServer 一并写全。

5.3 数据库域($wgDBtype / $wgDBserver / $wgDBname / $wgDBuser / $wgDBpassword / $wgDBTableOptions)

参数官方默认值含义
$wgDBtype"mysql"数据库类型:mysql / postgres / sqlite
$wgDBserver"localhost"数据库主机(localhost 走 socket,127.0.0.1 走 TCP)
$wgDBname"my_wiki"库名(本环境安装器写为 wikidb)
$wgDBuser"wikiuser"应用连接账号(生产建议专用账号而非 root)
$wgDBpassword无连接口令
$wgDBprefix""表名前缀(多 wiki 共库时区分)
$wgDBsslfalse是否 TLS 连库(跨机部署建议 true)
$wgDBTableOptions"ENGINE=InnoDB, DEFAULT CHARSET=binary"建表引擎与字符集

实测安装后库表齐全(回显见安装篇 5.6/数据库验证节),修改本域参数主要发生在迁移数据库服务器时:改 $wgDBserver/$wgDBuser/$wgDBpassword 后用维护脚本验证连通性:

php maintenance/run.php sql --query 'SELECT user_id,user_name,user_real_name FROM user;'
stdClass Object
(
    [user_id] => 1
    [user_name] => MediaWiki default
    [user_real_name] =>
)
stdClass Object
(
    [user_id] => 2
    [user_name] => Admin
    [user_real_name] =>
)
...

(1.46 的 sql 脚本按行打印查询结果对象,此处节选前两条,后两条为 Maintenance script 与 Editor;完整逐行回显见命令篇 sql 脚本一节。连通性正常即说明数据库域配置正确。)

💡 技术拓展:wiki 引擎的数据库依赖不止 MediaWiki 的「强数据库依赖」一种。常见同类选项对比——

引擎存储后端取舍
MediaWikiMySQL/MariaDB/PostgreSQL/SQLite支撑版本历史与搜索,规模上限最高
DokuWiki无数据库(纯文本文件)迁移即拷目录,但并发与搜索能力弱
XWikiH2/MySQL/PostgreSQL对象模型重,依赖也重
Wiki.jsPostgreSQL/MySQL/SQLite现代栈,2.x 起必须配库

MediaWiki 官方推荐 MariaDB/MySQL(维基百科生产同款);本文实际采用 MySQL 8.0.46,理由是 Ubuntu 22.04 仓库原生携带、与官方默认参数零适配成本。

5.4 缓存域($wgMainCacheType / $wgMemCachedServers / $wgCacheDirectory)

参数官方默认值含义
$wgMainCacheTypeCACHE_ANYTHING(-1,自动挑可用后端)主对象缓存后端
$wgMemCachedServers[]Memcached 服务器数组(CACHE_MEMCACHED 时生效)
$wgCacheDirectory未设置(注释状态)解析缓存等本地文件缓存目录(设了显著提速)
$wgParserCacheType取 $wgMainCacheType解析结果缓存后端
$wgMessageCacheType取 $wgMainCacheType消息缓存后端

类型常量实测取自 includes/Defines.php:

CACHE_ANYTHING = -1   # 自动挑可用后端
CACHE_NONE     = 0    # 不缓存
CACHE_DB       = 1    # 存数据库
CACHE_MEMCACHED = 'memcached-php'
CACHE_ACCEL    = 3    # APC/APCu

本环境实测运行值为 3(CACHE_ACCEL),两条证据:安装器生成的 LocalSettings.php 写有 $wgMainCacheType = CACHE_ACCEL;(CLI 安装时探测到 PHP 8.3 的 APCu 扩展自动选择);getConfiguration --regex 'wgMainCacheType' 输出 s:15:"wgMainCacheType";i:3;。

💡 技术拓展:$wgMainCacheType 的候选后端对比——

取值原理/特点适用场景
CACHE_NONE (0)不缓存,每次直查开发调试
CACHE_DB (1)对象存 MySQL 表,零新增组件单机小站
CACHE_ACCEL (3)PHP 进程内 APCu 共享内存,最快单机生产(本环境实测所选)
CACHE_MEMCACHED独立缓存服务,多 Web 节点共享多机/集群
CACHE_ANYTHING (-1)按优先级自动挑可用者默认值,装了 APCu 即等价 ACCEL

本环境因单机且已装 php8.3-apcu,实际采用安装器自动写入的 CACHE_ACCEL。

5.5 上传与文件域($wgEnableUploads / $wgFileExtensions / $wgMaxUploadSize / $wgUseImageMagick)

参数官方默认值含义
$wgEnableUploadsfalse是否开放上传(安装器默认写 false)
$wgFileExtensions['png','gif','jpg','jpeg','webp','woff','woff2','webm','mp4','oga','ogg','ogv','pdf','mid','svg','wav','mp3','zip'](默认清单子集,实际以 schema 为准)允许的扩展名白名单
$wgMaxUploadSize1024*100*1024(约 100MB)单文件上限(字节)
$wgUseImageMagickfalse缩略图用 ImageMagick 而非内置 GD
$wgSharedUploadDirectory未设置共享文件库(InstantCommons 走 $wgUseInstantCommons)

实测开启上传(false → true + 白名单)后:

php maintenance/run.php getConfiguration --regex 'wgEnableUploads'   # → b:1
curl -s -o /dev/null -w '%{http_code}\n' 'http://localhost/mediawiki/index.php/Special:Upload'
200

⚠️ 实测注意:上传页 URL 要用规范名 Special:Upload;用中文别名路径 Special:上传 实测返回 404。开启上传前必须 chown -R www-data:www-data images,否则上传表单能打开但落盘失败。

5.6 权限与用户域($wgGroupPermissions / $wgPasswordPolicy / $wgReadOnly)

$wgGroupPermissions:按「用户组 → 动作 → 布尔」的三层结构控制权限。内置组:*(匿名)、user、autoconfirmed、sysop、bureaucrat、bot、interface-admin。实测禁止匿名编辑并验证:

$wgGroupPermissions['*']['edit'] = false;
curl -s 'http://localhost/wiki/首页?action=edit' | sed 's/<[^>]*>//g' | grep -m1 '没有权限'
因为以下原因,您没有权限编辑该页面:

$wgPasswordPolicy:按用户组分档的密码策略(实测定义见 includes/MainConfigSchema.php):bureaucrat/sysop/interface-admin/bot 组 MinimalPasswordLength => 10(默认),default 组 8 位;所有组默认启用 PasswordNotInCommonList(常见弱口令清单校验)。实测弱口令被拒(CLI 安装传 q1w2e3r4 时):

Error: Invalid wiki admin password:
* Passwords must be at least 10 characters.
* The password entered is in a list of very commonly used passwords. Please choose a more unique password.

按组放宽后改密成功(完整过程见安装篇 9.1 节):

Password set for Admin
Invalidated sessions for user Admin

$wgReadOnly:设为非空字符串即进入全站只读并显示横幅。实测设为「站点维护中,预计 30 分钟后恢复」后,匿名访问编辑页出现:

站点维护中,预计 30 分钟后恢复

只读期间所有写动作(编辑/上传/移动)被拒;删除该行即恢复。

5.7 邮件域($wgEnableEmail / $wgSMTP / $wgEmailAuthentication / $wgPasswordSender)

参数官方默认值含义
$wgEnableEmailtrue是否启用邮件功能(注册确认/通知)
$wgEnableUserEmailtrue用户间通过 wiki 转发邮件
$wgEmailAuthenticationtrue修改邮箱需确认信验证
$wgPasswordSender空字符串系统邮件发件人地址(生产必填)
$wgEmergencyContact空字符串管理员联系地址
$wgSMTPfalse数组时走 SMTP 而非 PHP mail()
$wgEnotifUserTalk / $wgEnotifWatchlistfalse / false(UPO)讨论页/关注页邮件通知

SMTP 配置形态(需要外发邮件的服务器必配,PHP mail() 在无本地 MTA 时不可用):

$wgSMTP = [
    'host'     => 'smtp.example.com',
    'IDHost'   => 'example.com',
    'port'     => 587,
    'auth'     => true,
    'username' => 'wiki@example.com',
    'password' => 'SMTP账号口令',
];

本环境未配置本地 MTA,邮件域保持默认(未做发送实测),相关行为以官方手册为准。

5.8 安全密钥域($wgSecretKey / $wgUpgradeKey / $wgAuthenticationTokenVersion)

参数官方默认值含义
$wgSecretKey安装时随机生成(64 位十六进制)全站密钥根:token 哈希、会话签名
$wgUpgradeKey随机生成LocalSettings 在位时开启 Web 升级向导的口令;升级完成后建议删掉该行
$wgAuthenticationTokenVersion"1"令牌版本号,+1 会强制全员重新登录

⚠️ 实测提醒:$wgSecretKey 泄露等于会话体系失守,生产环境权限建议 640;$wgUpgradeKey 是弱口令形态的 Web 升级入口开关,日常应注释。

5.9 外观与皮肤域($wgDefaultSkin / wfLoadSkin / $wgLogos)

参数官方默认值含义
$wgDefaultSkin"vector-2022"默认皮肤(1.46 内置四种:Vector 2022/Vector legacy/MonoBook/Timeless,另有 MinervaNeue 移动端)
wfLoadSkin( 'Vector' ) 等安装器按检测写入启用的皮肤清单
$wgLogos官方占位图 change-your-logo.svg站点 Logo(1x/icon/svg 多尺寸数组)

实测把 $wgDefaultSkin 改为旧版 "vector",页面 body class 立即变为 skin-vector-legacy(默认 2022 版则是 skin-vector-2022 系),改回即恢复。安装器生成的 Logo 占位指向官方提示图,生产要替换成自有 Logo 文件路径,否则升级时占位图会被覆盖。

5.10 调试与排障域($wgDebugLogFile / $wgShowExceptionDetails / $wgShowSQLErrors)

参数官方默认值含义
$wgDebugLogFile未设置调试日志文件路径(设置后记录每次请求全链路)
$wgShowExceptionDetailsfalse页面异常时是否打印堆栈(生产保持 false)
$wgShowSQLErrorsfalse是否向页面泄露 SQL 错误细节
$wgDebugToolbarfalse页面注入调试工具条

实测开启 $wgDebugLogFile = "/var/log/mediawiki/debug.log";(目录需 www-data 可写:mkdir -p /var/log/mediawiki && chown www-data:www-data /var/log/mediawiki),随后请求首页,日志文件即产生(实测前 4 行):


Start request GET /wiki/首页
IP: 127.0.0.1

⚠️ 实测注意:调试日志会随请求无限增长且包含敏感上下文,排障结束必须删除该行并清理日志文件。

六、生产配置模板

适用场景:16GB 内存 / SSD / 单机 Apache(或 Nginx)+ 本机 MySQL,50–200 人团队的中型知识库。模板中 ${WIKI_DB_PASS}、${WIKI_SECRET_KEY} 为需注入的真实值:数据库口令由 DBA 下发,密钥用 openssl rand -hex 32 生成(取值方法)。

<?php
# ===== 站点标识 =====
$wgSitename = "团队知识库";
$wgMetaNamespace = "Team_KB";
$wgLanguageCode = "zh";
$wgLocaltimezone = "Asia/Shanghai";

# ===== 路径与 URL(对外 https 域名,显式固定防 Host 头漂移)=====
$wgScriptPath = "";                      # 站点直接挂在域名根
$wgServer = "https://wiki.example.com";
$wgCanonicalServer = "https://wiki.example.com";
$wgResourceBasePath = $wgScriptPath;

# ===== 数据库(专用账号,禁止 root)=====
$wgDBtype = "mysql";
$wgDBserver = "localhost";
$wgDBname = "wikidb";
$wgDBuser = "wikiuser";
$wgDBpassword = "${WIKI_DB_PASS}";
$wgDBssl = false;

# ===== 缓存(单机 APCu + 本地解析缓存目录)=====
$wgMainCacheType = CACHE_ACCEL;
$wgParserCacheType = CACHE_ACCEL;
$wgCacheDirectory = "$IP/cache";         # mkdir 且 chown www-data
$wgMemCachedServers = [];                # 多 Web 节点时改接 memcached

# ===== 上传 =====
$wgEnableUploads = true;
$wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'webp', 'pdf', 'svg' ];
$wgMaxUploadSize = 52428800;             # 50MB
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";

# ===== 邮件 =====
$wgEnableEmail = true;
$wgEnableUserEmail = true;
$wgEmailAuthentication = true;
$wgEmergencyContact = "ops@example.com";
$wgPasswordSender = "wiki-noreply@example.com";

# ===== 安全 =====
$wgSecretKey = "${WIKI_SECRET_KEY}";     # openssl rand -hex 32 生成
# $wgUpgradeKey 不设置:关闭 Web 升级向导
$wgShowExceptionDetails = false;
$wgShowSQLErrors = false;

# ===== 外观 =====
$wgDefaultSkin = "vector-2022";
$wgLogos = [ '1x' => "$wgResourceBasePath/resources/assets/logo.svg" ];
wfLoadSkin( 'Vector' );

# ===== 性能与作业 =====
$wgMemoryLimit = "256M";                 # 单请求内存上限
$wgJobRunRate = 1;                       # 每请求平均处理 1 个作业

配套 PHP 层(/etc/php/8.3/apache2/php.ini)建议同步:memory_limit = 256M、upload_max_filesize = 64M、post_max_size = 64M、max_execution_time = 120。

💡 说明:内存更大(32GB+)或多节点部署时,把 $wgMainCacheType/$wgParserCacheType 改为 CACHE_MEMCACHED 并填 $wgMemCachedServers;数据库独立部署时 $wgDBserver 写数据库内网地址并开 $wgDBssl = true。

七、常见问题

Q1:改了 LocalSettings.php 页面没变化? PHP 每次请求都会重新加载配置,变化通常立即生效;若看到旧行为,多为 HTTP 304 缓存,请求 URL 追加一个无关参数(如 ?cbtest1)再验证。用 getConfiguration --regex '<参数名>' 看运行时实际值最可靠。

Q2:CLI 安装/改密码报 "Passwords must be at least 10 characters." 密码策略按用户组分档(sysop/bureaucrat/interface-admin/bot 为 10 位,default 组 8 位),命中哪个组就放宽哪个组;弱口令还要按组关 PasswordNotInCommonList。完整按组放宽配置与实测见 5.6 节与安装篇 9.1 节。

Q3:getConfiguration 输出是乱码样的 a:2:{...}? 那是 PHP 序列化格式(默认 --format php),s:15:"xxx" 表示 15 字节字符串、b:1 表示布尔 true、i:3 表示整数 3;加 --format json 可换可读格式。

Q4:$wgReadOnly 设了之后页面横幅时有时无? 只读横幅随响应下发,命中 HTTP 缓存(304)的请求看不到新横幅;编辑页的只读提示是稳定验证点(实测 ?action=edit 页面始终出现只读文案)。

Q5:上传目录权限已给 www-data,仍传不上去? 逐项核对:$wgEnableUploads = true(默认 false)、扩展名在 $wgFileExtensions 白名单、images/ 及其子目录 www-data 可写;再确认访问的是规范页 Special:Upload(中文别名实测 404)。

八、参考链接