MediaWiki 在 XAMPP 上需启用 mysqli 和 mbstring 扩展、修正 extension_dir 路径、创建 utf8mb4 数据库、开启 Apache 的 AllowOverride All、设置 $wgUsePathInfo = true,并禁用调试输出与 root 数据库账号。

MediaWiki 在 XAMPP 上能跑起来,但默认配置会卡在安装页或数据库连接失败——核心问题不是 PHP 版本不兼容,而是 mysqli 扩展未启用 + php.ini 中的 extension_dir 路径错误导致扩展加载失败。
确认 XAMPP 的 PHP 扩展已正确启用
MediaWiki 1.35+ 强制要求 mysqli(不再支持 mysql),而 XAMPP 默认可能只启用了 pdo_mysql。打开 php.ini(通常在 XAMPP\php\php.ini),搜索并取消注释这两行:
extension=mysqli-
extension=mbstring(MediaWiki 中文、UTF-8 处理必需)
注意:XAMPP 8.0+ 使用 PHP 8.x,默认 extension_dir 指向的是 ext 子目录,但部分旧版 XAMPP 安装包里该路径写成了绝对路径(如 C:\xampp\php\ext),而实际文件在 C:\xampp\php\ext\ ——检查路径末尾是否多了一个反斜杠或少了 \,否则 mysqli 会静默加载失败,phpinfo() 里看不到该扩展。
创建专用数据库并设置字符集为 utf8mb4
MediaWiki 要求数据库和表都用 utf8mb4(而非旧版 utf8),否则后续插入 emoji 或某些中文生僻字会报错。不要用 phpMyAdmin 图形界面直接“新建数据库”然后点确定——它默认建的是 utf8 排序规则。
进 phpMyAdmin → SQL 标签页,执行:
CREATE DATABASE wikidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
同时确保 MySQL 配置(XAMPP\mysql\bin\my.ini)中包含以下段落(否则即使建库时指定了,表级默认仍可能退化):
[mysqld]<br>character-set-server = utf8mb4<br>collation-server = utf8mb4_unicode_ci
改完重启 MySQL 服务。
解压 MediaWiki 后必须调整 web 目录权限与重写规则
把 MediaWiki 解压到 XAMPP\htdocs\wiki\ 后,访问 http://localhost/wiki 会跳转到安装向导,但点击“安装”后常卡住或报 Internal Server Error。原因有两个:
- Windows 下 Apache 默认不读取
.htaccess文件,需手动开启:编辑XAMPP\apache\conf\httpd.conf,找到<directory></directory>块,把里面的AllowOverride None改成AllowOverride All; - MediaWiki 的
LocalSettings.php生成后默认关闭了 URL 重写,但 XAMPP 的 Apache 模块mod_rewrite是启用的,建议在安装完成后的LocalSettings.php末尾加一行:$wgUsePathInfo = true;,否则像/wiki/Special:Version这类链接会 404。
安装完成后立即禁用远程数据库访问与调试输出
本地开发环境容易忽略安全边界:MediaWiki 安装时若填了 root 密码,LocalSettings.php 里会明文保存数据库凭据;更危险的是,$wgShowExceptionDetails = true; 和 $wgDebugToolbar = true; 若没关,任何 PHP 错误都会暴露完整路径、数据库结构甚至密码散列逻辑。
务必检查并修改 LocalSettings.php 中这几项:
-
$wgDBuser = 'wikidbuser';(别用 root) $wgShowExceptionDetails = false;$wgDebugToolbar = false;$wgDevelopmentWarnings = false;
这些不是“以后再改”的事——一旦代码被意外提交到公开仓库或截图外泄,就等于把锁孔照片发给了所有人。

















