Ubuntu 22.04 安装 MediaWiki 1.46 指南

Ubuntu 22.04 从零安装 MediaWiki 1.46.2 全流程实录:LAMP 环境、MySQL auth_socket 排障、PHP 8.3 升级、官方 tarball CLI/Web 双方案安装、Short URL、密码策略、升级与卸载,全部命令带回显。

MediaWikiMediaWiki知识库2026/10/22

Ubuntu 22.04 安装 MediaWiki 1.46 指南

目标:在 Ubuntu 22.04 服务器上从零安装 MediaWiki 1.46.2(官方最新稳定版,下载页实查日期 2026-10-22),覆盖 LAMP 基础环境、MySQL 初始化、官方 tarball 部署、Web 向导与 CLI 双安装方案、Short URL 伪静态、密码策略排障、升级与卸载全流程。已在 Apache 2.4.52 + MySQL 8.0.46 + PHP 8.3.36 的 Ubuntu 22.04 环境逐条实测通过,所有命令与回显均为真实记录。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(x86_64)
  • Web 服务器:Apache 2.4.52(Ubuntu 仓库 apt 安装)
  • 数据库:MySQL 8.0.46-0ubuntu0.22.04.4(Ubuntu 仓库 apt 安装)
  • PHP:8.3.36(CLI 与 Apache 模块均为 8.3;初始为系统自带 8.1.2,后按本文排障章节升级)
  • MediaWiki:1.46.2(官方 tarball 安装,安装目录 /var/www/mediawiki)
  • 站点访问路径:http://<服务器IP>/mediawiki/(Short URL 配置后为 http://<服务器IP>/wiki/<页面名>)
  • 数据库实例:库名 wikidb,管理账号 root / q1w2e3r4(演示环境)
  • 演示站点名:Qzuo Wiki,演示管理员:admin / q1w2e3r4
  • 磁盘占用:tarball 约 95MB,解压后约 400MB(含扩展与皮肤)

二、前置条件

  1. 一台可联网的 Ubuntu 22.04 服务器,具备 sudo/root 权限。
  2. 服务器可访问 Ubuntu 软件源与 releases.wikimedia.org(官方发布源)。
  3. 了解基本的 Apache/MySQL 概念;MediaWiki 是 PHP Web 应用,本篇采用「Web 服务器 + PHP 模块 + MySQL」的 LAMP 形态。
  4. 规划好站点访问路径:本篇演示 http://<服务器IP>/mediawiki/(通过 Apache Alias 挂载,不影响默认站点)。

三、版本选型说明

安装前先实查官方下载页(https://www.mediawiki.org/wiki/Download ,查询日期 2026-10-22),MediaWiki 当前三线并行:

版本线具体版本定位适用判断
当前稳定(stable)1.46.2最新功能线,2026 年 9 月下旬起发布新装首选
上一稳定(legacy)1.45.6仅收安全修复已在 1.45 线的老系统
长期支持(legacy LTS)1.43.11长周期安全支持求稳的老系统

关键硬性要求(官方 Download 页 System requirements,2026-10-22):MediaWiki 1.46 要求 PHP 8.3.0+、MariaDB 10.3.0+ / MySQL 5.7.0+ / SQLite 3.31.0+ / PostgreSQL 10.0+,官方推荐 MariaDB/MySQL。Ubuntu 22.04 仓库默认 PHP 是 8.1(不满足 1.46),因此本篇包含 PHP 8.3 升级排障实录;MySQL 8.0.46 满足要求。

另与 Ubuntu 仓库自带的发行版包对比(实测 apt-cache policy mediawiki):

apt-cache policy mediawiki
mediawiki:
  Installed: (none)
  Candidate: 1:1.35.6-1
  Version table:
     1:1.35.6-1 500
        500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages

发行版包停留在 1.35.6,与上游 1.46.2 相差 11 个大版本,不建议用于新部署。结论:新装选官方 tarball + 上游 1.46.2,三种安装方案对比见第八章。

四、LAMP 基础环境安装

本章要装齐 Apache、MySQL 与 PHP(先按系统默认装 PHP 8.1,升级到 8.3 的排障在第五章实录),并初始化 MySQL。

4.1 安装组件包

apt-get update
apt-get install -y apache2 mysql-server php php-mysql php-xml php-mbstring \
  php-intl php-apcu php-curl php-gd php-zip libapache2-mod-php \
  software-properties-common wget curl

安装输出节选(实测末尾,包配置完成后的触发器阶段):

Setting up php (2:8.1+92ubuntu1) ...
Setting up libcgi-fast-perl (1:2.15-1) ...
Processing triggers for php8.1-cli (8.1.2-1ubuntu2.28) ...
Processing triggers for libapache2-mod-php8.1 (8.1.2-1ubuntu2.28) ...

验证三个组件版本(实测):

php -v | head -1
mysql --version
apache2 -v
PHP 8.1.2-1ubuntu2.28 (cli) (built: Oct 19 2026 18:54:45) (NTS)
mysql  Ver 8.0.46-0ubuntu0.22.04.4 for Linux on x86_64 ((Ubuntu))
Server version: Apache/2.4.52 (Ubuntu)
Server built:   2026-10-08T19:59:46

4.2 启动并设置开机自启

systemctl enable apache2
systemctl enable mysql
systemctl start apache2
systemctl start mysql

systemctl enable 回显(实测):

Executing: /lib/systemd/systemd-sysv-install enable apache2

验证服务状态(实测):

systemctl is-active apache2
systemctl is-active mysql
active
active

4.3 MySQL 安全初始化与 root 密码

Ubuntu 22.04 的 MySQL 8.0 root 默认走 auth_socket(仅本机系统 root 免密),先执行安全初始化:

mysql_secure_installation

交互回答与回显(实测,按提示依次输入):

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: n
Skipping password set for root as authentication with auth_socket is used by default.
If you would like to use password authentication instead, this can be done with the "ALTER_USER" command.
See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-user-password-management for more information.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
 ... skipping.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
 ... skipping.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.
 - Removing privileges on test database...
Success.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

⚠️ 注意:实测中发现 8.0.46 的 mysql_secure_installation 在 root 为 auth_socket 时会跳过密码设置(上文 "Skipping password set for root as authentication with auth_socket is used by default."),若回答 y(启用密码校验组件)走交互式改密流程会因 auth_socket 机制同样不生效。MediaWiki 的安装器/站点必须用「用户名 + 密码」连接数据库,因此下一步必须显式把 root 改为密码认证:

mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'q1w2e3r4'; FLUSH PRIVILEGES;"

验证密码登录(实测):

mysql -uroot -pq1w2e3r4 -e 'SELECT VERSION();'
VERSION()
8.0.46-0ubuntu0.22.04.4

五、方案 A:官方 tarball 安装(推荐主线)

本章为推荐主线:官方 tarball + CLI 安装,从下载到站点可访问一次跑通,期间包含 PHP 8.3 升级的真实排障实录。

5.1 下载官方 tarball

官方发布源为 releases.wikimedia.org(来源:mediawiki.org 官方 Download 页 2026-10-22 引用链接):

cd /root
curl -fLO https://releases.wikimedia.org/mediawiki/1.46/mediawiki-1.46.2.tar.gz
ls -lh mediawiki-1.46.2.tar.gz
sha256sum mediawiki-1.46.2.tar.gz

下载与校验回显(实测,curl 进度行 + 文件清单 + 校验和):

  0     0    0     0    0     0      0      0 --:--:--  0:00:54 --:--:--     0
curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to releases.wikimedia.org:443

⚠️ 排障实录:首次直连 releases.wikimedia.org 出现 SSL 连接被重置(网络环境问题)。若服务器直连官方源不稳定,可改用 HTTP 代理下载:curl -fLO -x http://<代理地址>:<端口> https://releases.wikimedia.org/...。重试成功后:

100 94.4M  100 94.4M    0     0  13.6M      0  0:00:06  0:00:06 --:--:-- 21.1M
-rw-r--r-- 1 root root 95M Oct 21 21:41 /root/mediawiki-1.46.2.tar.gz
8f7f937f8bbc1acd4cef1c5362a95f248dcd242020f2588798eb2f73ac2e69ba  /root/mediawiki-1.46.2.tar.gz

5.2 解压与目录权限

解压到 /var/www 并统一改名为 mediawiki(真实服务器标准路径)。程序目录保持 root 属主即可,仅上传目录 images/ 需要在开启上传时交给 Apache 运行用户 www-data(见 9.3 节):

cd /var/www
tar -xzf /root/mediawiki-1.46.2.tar.gz
mv mediawiki-1.46.2 mediawiki
ls -ld /var/www/mediawiki
drwxr-xr-x 15 root root 4096 Oct 21 21:41 /var/www/mediawiki

5.3 Apache 挂载站点

用 Alias 把 /mediawiki 指向安装目录,不干扰默认站点:

cat > /etc/apache2/conf-available/mediawiki.conf <<'EOF'
Alias /mediawiki /var/www/mediawiki
<Directory /var/www/mediawiki>
    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
EOF
a2enconf mediawiki
systemctl reload apache2

a2enconf 回显(实测):

Enabling conf mediawiki.
To activate the new configuration, you need to run:
  systemctl reload apache2

5.4 首次访问触发 PHP 版本报错(排障实录)

此时直接访问 http://<服务器IP>/mediawiki/ 会得到 HTTP 500(实测 curl -sI 首行 HTTP/1.1 500 MediaWiki configuration Error)。抓取错误正文:

curl -s http://localhost/mediawiki/ | sed 's/<[^>]*>//g' | grep -A2 'internal error'
MediaWiki 1.46 internal error
MediaWiki 1.46 requires PHP 8.3.0 or higher; you are using PHP 8.1.2-1ubuntu2.28.

错误现象:HTTP 500 + "MediaWiki 1.46 requires PHP 8.3.0 or higher"。 定位:Ubuntu 22.04 仓库 PHP 为 8.1,低于 1.46 的硬性要求 8.3(见第三章官方 System requirements)。 解决方案:升级到 PHP 8.3 并切换 Apache 模块(5.5)。

5.5 升级 PHP 8.3(ondrej/php PPA)

software-properties-common 已在第四章装好,添加 PHP 8.3 的维护者 PPA 并安装全套扩展:

add-apt-repository -y ppa:ondrej/php
apt-get install -y php8.3 php8.3-mysql php8.3-xml php8.3-mbstring php8.3-intl \
  php8.3-apcu php8.3-curl php8.3-gd php8.3-zip libapache2-mod-php8.3

PPA 添加回显(实测):

Adding repository.
Adding deb entry to /etc/apt/sources.list.d/ondrej-ubuntu-php-jammy.list
Adding disabled deb-src entry to /etc/apt/sources.list.d/ondrej-ubuntu-php-jammy.list
Adding key to /etc/apt/trusted.gpg.d/ondrej-ubuntu-php.gpg with fingerprint B8DC7E53946656EFBCE4C1DD71DAEAAB4AD4CAB6

⚠️ 若安装途中出现个别 deb 拉取 503(PPA CDN 瞬时抖动,实测遇到过 php8.3-mbstring/php8.3-mysql 503 Service Unavailable),加 --fix-missing 重跑同一命令即可完成补齐。

把 CLI 默认 php 切到 8.3,Apache 模块切到 8.3 并重启:

update-alternatives --set php /usr/bin/php8.3
a2dismod php8.1
a2enmod php8.3
systemctl restart apache2
php -v | head -1
update-alternatives: using /usr/bin/php8.3 to provide /usr/bin/php (php) in manual mode
Module php8.1 already disabled
Module php8.3 already enabled
PHP 8.3.36 (cli) (built: Oct 21 2026 14:31:50) (NTS)

确认扩展齐全(实测):

php -m | grep -iE 'mbstring|xml|intl|apcu|mysqli|gd|curl|zip' | tr '\n' ' '
apcu curl gd intl libxml mbstring mysqli mysqlnd pdo_mysql SimpleXML xml xmlreader xmlwriter zip

5.6 CLI 一条命令完成安装

先看安装器的参数帮助(实测节选):

cd /var/www/mediawiki
php maintenance/run.php install --help
CLI-based MediaWiki installation and configuration.
Default options are indicated in parentheses.
If no options are provided, the script will run in interactive mode.

Usage: php maintenance/run.php install [OPTION]... [name] [admin]

Script specific options:
    --confpath <CONFPATH>: Path to write LocalSettings.php to
        (/var/www/mediawiki)
    --dbname <DBNAME>: The database name (my_wiki)
    --dbserver <DBSERVER>: The database host (localhost)
    --dbtype <DBTYPE>: The type of database (mysql)
    --installdbuser <INSTALLDBUSER>: The user to use for installing
        (root)
    --pass <PASS>: The password for the wiki administrator.
    --lang <LANG>: The language to use (en)
    --scriptpath <SCRIPTPATH>: ...

执行安装(库名 wikidb、root 连库、站点名 Qzuo Wiki、管理员 admin、界面语言中文):

php maintenance/run.php install --lang=zh --dbname=wikidb \
  --dbserver=localhost --dbuser=root --dbpass=q1w2e3r4 \
  --pass='QzuoAdmin2026' --scriptpath=/mediawiki 'Qzuo Wiki' admin

完整回显(实测):

PHP 8.3.36已安装。
ICU 70.1已安装(支持Unicode 14.0.0)。
已找到内建的GD图形库。 如果你启用了上传功能,缩略图功能也将被启用。
Git版本控制软件未找到,您可以暂时忽略它,另请注意Special:Version不会显示commit的哈希值。
使用服务器名“http://localhost”。
使用服务器URL“http://localhost/mediawiki”。
警告:在CLI安装过程中,没有对您的默认上传目录(/var/www/mediawiki/images/)进行执行任意脚本的漏洞检查。
警告:您上传目录中的图像请求应使用HTTP标头X-Content-Type-Options: nosniff进行响应,以保护浏览器免受潜在不安全文件的侵害。 强烈建议在启用上传之前,在您的网络服务器上配置适当的响应标头。
环境检查已经完成。 您可以安装MediaWiki。
正在包含扩展程序... 完成
正在配置数据库... 完成
正在创建数据表... 完成
初始化统计... 完成
正在填充默认的跨wiki数据表... 完成
防止运行不需要的更新... 完成
正在恢复MediaWiki服务... 完成
正在创建显示默认内容的首页... 完成
正在创建管理员用户账号... 完成
已成功创建数据库
MediaWiki已成功安装。您现在可以访问<http://localhost/mediawiki>以查看您的wiki。如果您有问题,请阅览我们的常见问题列表:<https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ>或使用在该页面上链接的支持论坛之一。

⚠️ 注意 --pass 的实测行为:MediaWiki 1.46 默认密码策略要求至少 10 位且不能在常见弱口令清单里,直接传 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.),因此先用合规密码创建,再把管理员密码改成测试口令的办法见第十章。

数据库侧验证(实测):

mysql -uroot -pq1w2e3r4 -e 'SHOW DATABASES;'
Database
information_schema
mysql
performance_schema
sys
wikidb

LocalSettings.php 已由安装器生成在站点根目录:

ls -l /var/www/mediawiki/LocalSettings.php
-rw-r--r-- 1 root root 4366 Oct 21 21:54 /var/www/mediawiki/LocalSettings.php

💡 安全提示:LocalSettings.php 内含 $wgSecretKey 与数据库口令,生产环境建议收紧权限(如 chmod 640 并把属组设为 www-data),并纳入配置备份。

5.7 站点验证

curl -sI http://localhost/mediawiki/ | head -3
HTTP/1.1 301 Moved Permanently
Date: Wed, 21 Oct 2026 21:54:55 GMT
Server: Apache/2.4.52 (Ubuntu)

首页正常渲染(302/301 后跟首页,标题与站点名一致;实测抓取 <title> 为 Qzuo Wiki)。打开版本页确认版本(实测抓取 Special:Version 页面内容):

MediaWiki 1.46.2

六、方案 B:Web 安装向导

MediaWiki 的官方默认安装方式是 Web 向导,适合有浏览器操作条件的场景。删除(或改名)LocalSettings.php 后站点会自动进入安装向导。

实测入口行为:把已生成的 LocalSettings.php 临时移走后访问 http://<服务器IP>/mediawiki/,服务端直接返回安装向导入口(实测 curl -sI 可见 Set-Cookie: mw_installer_session=...;跟进 mw-config/index.php 页面标题为 MediaWiki 1.46.2 installation,首屏为 Language 语言选择步骤)。

向导分步(每步页面均有下一步/上一步导航,按屏幕提示填即可):

步骤屏幕内容关键输入
1Language选择界面语言(如 zh 中文)
2Welcome to MediaWiki环境检查结果确认
3Connect to database数据库类型 MySQL、主机 localhost、库名 wikidb、账号 root/q1w2e3r4
4Database settings存储引擎/字符集,默认即可
5Name站点名(Qzuo Wiki)与管理员账号(admin + 密码)
6Options用户权限配置档、皮肤、扩展勾选
7Install自动建表并生成 LocalSettings.php
8Complete!页面提示下载 LocalSettings.php

与 CLI 方案的差异:向导最后一步是下载 LocalSettings.php 文件,需要人工把它放到 /var/www/mediawiki/ 下;CLI 方案则直接写好。两类方式生成的配置内容一致,可互换使用。验证与第五章 5.7 相同(Special:Version 应显示 1.46.2)。

七、方案 C:Ubuntu 发行版 apt 包

apt-cache policy mediawiki
apt-get install -y mediawiki

apt-cache policy 实测(见第三章)显示仓库候选版本为 1:1.35.6-1。该方案优点是 apt 一条命令、由发行版统一打安全补丁、自带 Apache 配置脚本;缺点是版本严重落后于上游 1.46.2(相差 11 个大版本),且 MediaWiki 官方对老版本的安全支持已经结束。仅适合不能联网到官方源、且对版本无要求的内网环境;新部署一律推荐方案 A。

八、方案对比与选择建议

维度方案 A:tarball(本篇主线)方案 B:Web 向导方案 C:apt 发行版包
版本上游最新 1.46.2同 tarball仓库 1.35.6(严重滞后)
是否需联网需(官方发布源)需需(Ubuntu 源)
操作载体CLI 一条命令,可脚本化浏览器分步点击apt 包管理器
LocalSettings.php安装器直接生成向导完成后人工下载放置包配置脚本处理
升级方式换 tarball + update.php同左受限于发行版打包节奏
适用场景生产/无人值守/可复制首次上手、有浏览器环境离线内网、低要求场景

选择建议:服务器环境(尤其批量部署、无 GUI)选方案 A;首次接触想跟着向导走一遍选方案 B;方案 C 仅作了解,不建议新部署。

九、安装后配置

9.1 管理员密码改为测试口令(密码策略实测)

MediaWiki 1.46 的密码策略按用户组分档(定义在 includes/MainConfigSchema.php 的 PasswordPolicy):bureaucrat/sysop/interface-admin/bot 组 MinimalPasswordLength = 10,default 组 8 位且所有组默认启用常见口令清单校验(PasswordNotInCommonList)。要把 admin 密码改为 q1w2e3r4(8 位、且在常见口令清单),需在 LocalSettings.php 末尾按组放宽(仅建议测试环境,生产保持默认):

# 测试环境放宽密码策略(生产环境务必保持默认 10 位 + 常见口令清单校验)
$wgPasswordPolicy['policies']['sysop']['MinimalPasswordLength'] = 8;
$wgPasswordPolicy['policies']['bureaucrat']['MinimalPasswordLength'] = 8;
$wgPasswordPolicy['policies']['interface-admin']['MinimalPasswordLength'] = 8;
$wgPasswordPolicy['policies']['bot']['MinimalPasswordLength'] = 8;
$wgPasswordPolicy['policies']['sysop']['PasswordNotInCommonList'] = false;
$wgPasswordPolicy['policies']['bureaucrat']['PasswordNotInCommonList'] = false;
$wgPasswordPolicy['policies']['interface-admin']['PasswordNotInCommonList'] = false;
$wgPasswordPolicy['policies']['default']['PasswordNotInCommonList'] = false;

然后改密(实测):

php maintenance/run.php changePassword --user=admin --password=q1w2e3r4
Password set for Admin
Invalidated sessions for user Admin

⚠️ 排障实录:只放宽 default 组时改密仍报 Passwords must be at least 10 characters.——admin 实际命中的是 sysop/bureaucrat/interface-admin 三个组的策略,必须按组覆盖;改完长度后还会报 The password entered is in a list of very commonly used passwords.,需再按组关掉 PasswordNotInCommonList(含 default 组,合并策略取最严)。

9.2 Short URL 伪静态(/wiki/页面名)

默认 URL 形如 /mediawiki/index.php/首页,改成 /wiki/首页 更简洁。分两步:

① LocalSettings.php 追加:

$wgScriptExtension = "php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

② Apache 增加两条 Alias(推荐用官方 Manual:Short_URL 的 Alias 方案,比 mod_rewrite 更稳):

cat > /etc/apache2/conf-available/mediawiki.conf <<'EOF'
Alias /wiki /var/www/mediawiki/index.php
Alias /mediawiki /var/www/mediawiki
<Directory /var/www/mediawiki>
    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
EOF
systemctl reload apache2

验证(实测;已存在页面返回 200,不存在页面 MediaWiki 1.46 会返回 404 并给出「创建该页」提示):

curl -s -o /dev/null -w '/wiki/首页 => %{http_code}\n' 'http://localhost/wiki/首页'
curl -s -o /dev/null -w '/wiki/CLI测试页 => %{http_code}\n' 'http://localhost/wiki/CLI测试页'
/wiki/首页 => 200
/wiki/CLI测试页 => 200

⚠️ 排障实录:最初尝试用 RewriteRule ^/wiki/(.*)$ /mediawiki/index.php/$1 [L,QSA](写在全局 conf 中)实测返回 Apache 404,rewrite 规则在该挂载形态下未命中;改用官方推荐的 Alias /wiki /var/www/mediawiki/index.php 方案后立即生效。排查时可用 apache2ctl -M | grep rewrite 确认模块已启用,再优先换 Alias 方案。

9.3 开启上传(可选)

LocalSettings.php 中把 $wgEnableUploads 改为 true 并声明允许的扩展名,同时保证 images 目录可写:

$wgEnableUploads = true;
$wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'webp', 'pdf', 'svg' ];
chown -R www-data:www-data /var/www/mediawiki/images

验证(实测 Special:Upload 上传页返回 200):

curl -s -o /dev/null -w '%{http_code}\n' 'http://localhost/mediawiki/index.php/Special:Upload'
200

十、升级

升级主线:备份 → 换 tarball → 跑数据库更新脚本。

# 1) 备份(数据库 + 配置 + 上传文件)
mysqldump -uroot -pq1w2e3r4 wikidb > /root/wikidb-$(date +%F).sql
cp -a /var/www/mediawiki/LocalSettings.php /root/
tar -czf /root/images-$(date +%F).tgz -C /var/www/mediawiki images

# 2) 下载新版 tarball,解压覆盖代码目录(LocalSettings.php/images/extensions 保留)
# 3) 跑数据库迁移与缓存刷新
cd /var/www/mediawiki
php maintenance/run.php update

update.php 回显节选(实测,当前已是最新表结构时大量步骤被跳过):

Adding empty categories with description pages...
Removing empty categories without description pages...
Category cleanup complete.
Fixing log entries with log_title starting with 'User:#'
done.
Skipped 34 updates that were already applied.
Purging caches...
Done in 0.1 s.

版本复核(实测):

php maintenance/run.php Version
MediaWiki version: 1.46.2 (built: 2026年10月21日 (三) 21:58)

⚠️ 回滚方案:升级前留好三件套(SQL dump / 旧版代码目录 / LocalSettings.php),若新版异常,停 Apache、还原代码目录与配置、恢复 SQL 后启动即可。

十一、常见问题

Q1:访问站点报 HTTP 500,正文 "MediaWiki 1.46 requires PHP 8.3.0 or higher; you are using PHP 8.1.2-1ubuntu2.28." Ubuntu 22.04 自带 PHP 8.1,低于 1.46 的硬性要求。按 5.5 节升级 PHP 8.3(ondrej/php PPA),并把 CLI 的 php 与 Apache 模块都切到 8.3 后重启 Apache。

Q2:CLI 安装或改密报 "Passwords must be at least 10 characters." MediaWiki 默认密码策略按用户组分档,sysop/bureaucrat/interface-admin/bot 组最低 10 位。要么用 10 位以上且不在常见口令清单的密码,要么按 9.1 节在 LocalSettings.php 按组放宽(仅测试环境)。

Q3:mysql_secure_installation 没有让设置 root 密码 Ubuntu 22.04 的 MySQL 8.0 root 默认 auth_socket 认证,脚本会跳过密码设置并提示可用 ALTER USER 改。MediaWiki 需要密码连接,按 4.3 节执行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<密码>'; FLUSH PRIVILEGES;。

Q4:PPA 安装 PHP 8.3 时个别 deb 报 503 Service Unavailable PPA CDN 瞬时抖动,带 --fix-missing 重跑同一条 apt-get install 命令即可补齐完成。

Q5:配置 Short URL 后访问 /wiki/ 返回 Apache 404 全局 conf 里的 mod_rewrite 规则在这种 Alias 挂载形态下未命中(实测复现)。改用官方 Manual:Short_URL 的 Alias /wiki <站点目录>/index.php 方案(9.2 节),并确认 $wgArticlePath/$wgUsePathInfo 已配置。

Q6:开启上传后 Special:Upload 打不开 先确认 $wgEnableUploads = true; 且 images 目录属主为 www-data(chown -R www-data:www-data images);URL 用规范名 Special:Upload(中文别名路径实测会 404)。

十二、卸载与清理

# 1) 删除数据库与专用账号(如有)
mysql -uroot -pq1w2e3r4 -e "DROP DATABASE IF EXISTS wikidb;"

# 2) 移除 Apache 挂载
a2disconf mediawiki
systemctl reload apache2
rm -f /etc/apache2/conf-available/mediawiki.conf

# 3) 删除程序与数据目录
rm -rf /var/www/mediawiki

# 4) 如需彻底移除 LAMP
apt-get purge -y apache2 mysql-server 'php*'
apt-get autoremove -y

每一步执行后分别用 SHOW DATABASES;(无 wikidb)、curl -I http://localhost/mediawiki/(连接失败)、ls /var/www/mediawiki(目录不存在)复核即可。

十三、参考链接