本教程适用于以下操作系统版本
- Ubuntu 24.04(Noble Numbat)
- Ubuntu 22.04(Jammy Jellyfish)
- Ubuntu 18.04(Bionic Beaver)
本页内容
- 先决条件
- 安装依赖项
- 配置 UFW
- 配置 PHP
- 配置 MariaDB 服务器
- 下载 MediaWiki
- 配置 Apache 虚拟主机
- 使用 HTTPS 保护 MediaWiki
- 安装 MediaWiki
- 结语
MediaWiki 是一款使用 PHP 和 MySQL 编写的开源 wiki 软件。它是一个可扩展、可伸缩的 wiki 软件平台,支撑着 Wikipedia 和 Wikimedia 等站点。MediaWiki 可用作协作与文档平台,帮助你整理文档并向所有人公开。它支持多语言,并可在主题/skins、插件、编辑器等多个方面进行自定义。
本指南将介绍如何在 Ubuntu 24.04 服务器上安装 MediaWiki。你将使用 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)安装 MediaWiki,然后通过 Certbot 和 Letsencrypt 使用 HTTPS 加以保护。
先决条件
在开始之前,请确保你已具备以下条件:
- 一台 Ubuntu 24.04 服务器。
- 一个具有管理员权限的非 root 用户。
- 一个已指向服务器 IP 地址的域名。
安装依赖项
要安装 MediaWiki,必须先确保系统上已安装相关依赖。目前 MediaWiki 1.41 稳定版需要 PHP 8.1 至 8.3。在本节中,你将安装 Apache、MariaDB 服务器、PHP 8.3 和 ImageMagick 作为 MediaWiki 的依赖项。
首先,运行以下命令更新你的 Ubuntu 软件源。
sudo apt update
现在,使用以下命令安装 MediaWiki 的依赖项。输入 Y 确认操作。通过该命令,你将安装 LAMP 技术栈(Apache、MySQL/MariaDB 和 PHP)以及 ImageMagick 软件包。
sudo apt install apache2 mariadb-server imagemagick libapache2-mod-php php php-common php-intl php-xml php-curl php-gd php-mbstring php-mysql php-apcu

安装完成后,使用以下命令检查 apache2 服务的状态。你将看到 Apache Web 服务器正在运行并已设置开机自启。
sudo systemctl is-enabled apache2 sudo systemctl status apache2

使用以下命令检查 mariadb 服务。你可以看到 MariaDB 服务器正在运行并已启用。
sudo systemctl is-enabled mariadb sudo systemctl status mariadb

最后,使用以下命令检查 PHP 版本。你将看到系统上已安装 PHP 8.3。
sudo php -v

配置 UFW
使用以下命令在 UFW 中添加并启用 Apache Full 配置文件:
sudo ufw allow "Apache Full"
现在使用下面的 ufw status 命令验证 UFW 中已启用的规则。Apache Full 配置文件会同时开放 HTTP 和 HTTPS 协议的端口。
sudo ufw status

配置 PHP
安装完依赖后,你将通过编辑默认配置文件 /etc/php/8.3/apache2/php.ini 来设置 PHP。
运行以下 nano 命令打开 PHP 配置文件 /etc/php/8.3/apache2/php.ini 。
sudo nano /etc/php/8.3/apache2/php.ini
取消注释并按如下方式修改默认的 PHP 配置。请务必根据需要调整 memory_limit 和 date.timezone 选项。
date.timezone = Europe/Amsterdam upload_max_filesize = 80M memory_limit = 512M max_execution_time = 360
完成后保存并退出文件。
现在运行以下命令重启 Apache Web 服务器,使你的 PHP 配置生效。
sudo systemctl restart apache2
配置 MariaDB 服务器
PHP 配置完成后,你将加固 MariaDB 服务器,并为 MediaWiki 创建一个新的数据库和用户。你将使用 mariadb-secure-installation 工具加固 MariaDB,然后通过 mariadb 客户端创建新的数据库和用户。
使用以下 mariadb-secure-installation 命令加固你的 MariaDB 服务器安装。
sudo mariadb-secure-installation
接下来会提示你进行以下 MariaDB 服务器配置:
- 默认的 MariaDB 安装没有设置密码,在提示输入密码时直接按 ENTER。
- 输入 Y 以设置 MariaDB root 密码。然后输入 MariaDB 的新密码并重复确认。
- 输入 Y 以移除 MariaDB 安装中的匿名用户。
- 在提示禁用 MariaDB root 用户远程登录时,再次输入 Y。
- 输入 Y 以移除 MariaDB 中默认的 test 数据库。
- 最后,输入 Y 以重新加载表权限并应用新的更改。
加固 MariaDB 之后,使用以下命令登录 MariaDB 服务器——在提示时输入你的 root 密码。
sudo mariadb -u root -p
接下来,运行以下 SQL 语句为 MediaWiki 创建新的数据库和用户。本例中,你将创建新数据库 mediawikidb,以及用户 mediawiki(密码为 mediawikipassdb)。你可以根据自己的情况调整数据库信息。
CREATE DATABASE mediawikidb; CREATE USER mediawiki@localhost IDENTIFIED BY 'mediawikipassdb'; GRANT ALL ON mediawikidb.* TO mediawiki@localhost WITH GRANT OPTION; FLUSH PRIVILEGES;

现在运行以下语句检查用户 mediawiki 的权限。你可以看到用户 mediawiki 能够访问数据库 mediawikidb。
SHOW GRANTS FOR mediawiki@localhost;
最后,输入 quit 退出 MariaDB 服务器。

下载 MediaWiki
在本节中,你将下载 MediaWiki 1.41 源代码,并为其创建安装目录。
进入 /var/www 目录,并使用以下 curl 命令下载 MediaWiki 源代码。请访问 MediaWiki 下载页面以获取最新版本。
cd /var/www/ curl -O https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.1.tar.gz
下载完成后,解压 MediaWiki 源代码并将目录重命名为 mediawiki。这样,MediaWiki 的文档根目录就位于 /var/www/mediawiki 目录中。
tar -xvzf mediawiki- .tar.gz mv mediawiki- / mediawiki/
现在,将 /var/www/mediawiki 目录的所有权更改为 www-data 用户,并将默认权限设置为 0755。
sudo chown -R www-data:www-data /var/www/mediawiki sudo chmod 755 /var/www/mediawiki
配置 Apache 虚拟主机
下载完 MediaWiki 源代码后,下一步是为运行 MediaWiki 创建一个新的 Apache 虚拟主机文件。请确保你已将某个域名指向 MediaWiki 服务器。
首先,运行以下命令在 Apache Web 服务器上启用 rewrite 模块。
sudo a2enmod rewrite

现在使用以下 nano 编辑器命令创建新的虚拟主机文件 /etc/apache2/sites-available/mediawiki.conf。
sudo nano /etc/apache2/sites-available/mediawiki.conf
输入以下配置,并确保将 ServerName 选项替换为你自己的域名。
<VirtualHost *:80> ServerName wiki.howtoforge.local ServerAdmin [email protected] DocumentRoot /var/www/mediawiki ErrorLog /var/log/apache2/wiki.howtoforge.local_error.log CustomLog /var/log/apache2/wiki.howtoforge.local_access.log combined <Directory /var/www/mediawiki/> Options FollowSymlinks AllowOverride All Require all granted </Directory> </VirtualHost>
完成后保存并关闭文件。
接下来,运行以下命令以启用虚拟主机文件 mediawiki.conf 并校验 Apache 配置语法。如果语法正确,你将看到 Syntax is OK 的输出。
sudo a2ensite mediawiki.conf sudo apachectl configtest
最后,运行以下命令重启 Apache 以使更改生效。至此,你的 MediaWiki 安装准备工作就完成了。
sudo systemctl restart apache2

使用 HTTPS 保护 MediaWiki
在本指南中,你将使用 HTTPS 保护 MediaWiki。如果你使用的是公网域名,可以使用 Letsencrypt 提供的免费 SSL 证书并自动配置 HTTPS。本地域名用户也可以手动生成 SSL 证书并配置 HTTPS。
使用以下命令安装 certbot 和 python3-certbot-apache 软件包。输入 Y 确认安装。
sudo apt install certbot python3-certbot-apache
安装完成后,运行以下 certbot 命令为你的 MediaWiki 安装生成 SSL/TLS 证书。请务必将邮箱地址和域名替换为你自己的信息。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d wiki.howtoforge.local
你将在 /etc/letsencrypt/live/domain.com 目录中看到 SSL/TLS 证书。你的 MediaWiki 安装应当已自动通过 HTTPS 得到保护。
安装 MediaWiki
打开你的 Web 浏览器,访问你的 MediaWiki 域名,例如 http://wiki.howtoforge.local。点击“Setup the wiki”链接开始安装。

选择 MediaWiki 的语言,然后点击 Continue(继续)。

点击 Continue(继续)以接受 MediaWiki 的条款。

输入你的 MariaDB 数据库信息,然后点击 Continue(继续)。

数据库设置保持默认,然后点击 Continue(继续)。

现在输入你的 wiki 标题,并为 MediaWiki 安装创建一个新的管理员用户和密码。然后再次点击 Continue(继续)。

在 MediaWiki 的附加选项页面,进入 Skins(皮肤)部分并选择默认皮肤/主题。本例中我们将使用 MinervaNeue。

向下滚动,保持其他选项不变(或按需修改),然后点击 Continue(继续)。

点击 Continue(继续)以确认安装。

安装完成后,再次点击 Continue(继续)。

现在 LocalSettings.php 文件将自动下载到你的本地机器。上传该文件,或者创建内容相同的 LocalSettings.php 文件。

在 LocalSettings.php 文件中,将默认选项 $wgDefaultSkin 修改为 minerva。
$wgDefaultSkin = “minerva”;
现在访问你的 MediaWiki 首页,你就能看到 MinervaNeue 主题的首页。

现在你可以点击右上角的登录按钮,然后输入你的管理员用户名和密码。

结语
恭喜!你已成功在 Ubuntu 24.04 服务器上完成 MediaWiki 的安装。现在 MediaWiki 运行在 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)之上,并通过 certbot 和 Letsencrypt 使用 HTTPS 加以保护。