本页目录
- 前提条件
- 安装 LAMP 套件
- 配置 PHP
- 配置 MariaDB 服务器
- 下载 MediaWiki 源码
- 配置 Apache 虚拟主机
- 使用 HTTPS 保护 MediaWiki
- 安装 MediaWiki
- 总结
MediaWiki 是一款开源 wiki 软件,被 Wikipedia、Wikimedia 等大型 wiki 站点所采用。它是一款免费的 wiki 软件,可用作协作与文档平台,是一个功能强大、可扩展且特性丰富的 wiki 实现。
本教程将演示如何在 Debian 12 服务器上通过 LAMP 套件(Apache、MariaDB 和 PHP)安装 MediaWiki。此外,我们还会介绍如何通过 Certbot 和 Let's Encrypt 为 MediaWiki 启用 HTTPS 保护。
前提条件
在开始之前,请确保你已具备以下条件:
- 一台 Debian 12 服务器。
- 一个具有管理员权限的非 root 用户。
- 一个已解析到服务器 IP 地址的域名。
安装 LAMP 套件
MediaWiki 是一款基于 PHP 的开源软件,使用 MySQL/MariaDB 作为数据存储。目前 MediaWiki 的最新稳定版(1.41)要求至少 PHP 7.3.4 及以上版本,以及 MariaDB 10.3.0。关于 Web 服务器,你可以使用 Apache 或 Nginx 中的任意一个。
在本节中,你将安装用于运行 MediaWiki 的 LAMP 套件(Apache、MariaDB 和 PHP)。
首先,使用以下命令更新 Debian 软件源。
sudo apt update
软件源更新完成后,使用以下命令安装 LAMP 套件依赖。输入 Y 确认安装。
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

安装完成后,验证 Apache 和 MariaDB 服务,确保两者都在运行。
使用以下命令验证 Apache Web 服务器。如果输出 enabled,说明 Apache 已启用并将在开机时自动启动。运行时你会看到 active (running) 的输出。
sudo systemctl is-enabled apache2
sudo systemctl status apache2

接下来,使用以下命令验证 MariaDB 数据库服务器。输出应类似,出现 enabled 表示 MariaDB 已启用,active (running) 表示 MariaDB 正在运行。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

最后,使用以下命令查看 PHP 版本并列出已启用的模块。你会看到 Debian 服务器上已安装 PHP 8.2。
php -v
php -m

配置 PHP
安装完 LAMP 套件后,你将通过编辑 php.ini 文件并修改部分默认参数来配置 PHP,以满足 MediaWiki 的需求。
要配置 PHP,使用以下 nano 编辑器命令打开 PHP 配置文件 /etc/php/8.2/apache2/php.ini。
sudo nano /etc/php/8.2/apache2/php.ini
将默认配置修改为以下内容,并务必根据当前环境调整 date.timezone 和 memory_limit 两项。
date.timezone = Europe/Amsterdam upload_max_filesize = 80M memory_limit = 512M max_execution_time = 360
保存并退出文件。
现在运行以下命令重启 Apache 服务以使更改生效。
sudo systemctl restart apache2
配置 MariaDB 服务器
配置好 PHP 后,下一步是加固 MariaDB 服务器,并为 MediaWiki 创建新的数据库和用户。在本示例中,你将通过命令行 mariadb-secure-installation 加固 MariaDB 服务器,并通过 MariaDB 客户端创建新的数据库和用户。
要加固 MariaDB 服务器安装,请运行以下 mariadb-secure-installation 命令。
sudo mariadb-secure-installation
现在根据提示输入 Y 接受、或输入 n 拒绝 MariaDB 服务器的各项新配置:
- MariaDB 默认安装没有密码。在提示输入密码时直接按 ENTER。
- 输入 Y 设置 MariaDB root 密码,然后输入新密码并重复确认。
- 输入 Y 移除 MariaDB 安装中的匿名用户。
- 在提示禁用 root 用户远程登录时,再次输入 Y。
- 输入 Y 移除 MariaDB 中默认的 test 数据库。
- 最后,输入 Y 重新加载权限表并应用更改。
加固 MariaDB 服务器部署后,使用以下 mariadb 命令登录 MariaDB 服务器。在提示时输入你的 MariaDB root 密码。
sudo mariadb -u root -p
现在运行以下查询,为 MediaWiki 创建新的 MariaDB 数据库和用户。本示例中,你将创建新数据库 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;

接下来,运行以下查询验证 MariaDB 用户 mediawiki 的权限。确保 mediawiki 用户能够访问 mediawikidb 数据库。
SHOW GRANTS FOR mediawiki@localhost;
最后,输入 quit 退出 MariaDB。

下载 MediaWiki 源码
现在依赖已安装并配置完成,你可以安装 MediaWiki 了。MediaWiki 有多个版本:稳定版、旧版和 LTS 长期支持版。本例将安装最新的稳定版 MediaWiki 1.41。
切换到 /var/www 目录,并通过以下 wget 命令下载 MediaWiki 源码。请访问 MediaWiki 下载页面以获取最新版本。
cd /var/www/
wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.0.tar.gz
下载完成后,使用以下命令解压源码。然后将解压出的目录重命名为 mediawiki。这样 MediaWiki 的 DocumentRoot 目录将位于 /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 虚拟主机配置文件。请确保你已准备好指向服务器 IP 地址的域名。生产环境请购买公共域名,当然你也可以使用本地域名。
在开始之前,使用以下命令启用 Apache 的 rewrite 重写模块。
sudo a2enmod rewrite
现在使用以下 nano 编辑器命令创建新的 Apache 虚拟主机配置文件 /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 OK 的输出。
sudo a2ensite mediawiki.conf
sudo apachectl configtest
最后,重启 Apache Web 服务器以使 MediaWiki 的新虚拟主机生效。重启后,你的 MediaWiki 安装就准备就绪了。
sudo systemctl restart apache2

使用 HTTPS 保护 MediaWiki
现在你已为 MediaWiki 创建了 Apache 虚拟主机配置,接下来通过 Certbot 和 Let's Encrypt 使用 HTTPS 来保护你的安装。这仅适用于使用公共域名的场景;如果你使用的是本地域名,可以生成自签名证书并手动应用 HTTPS。
使用以下命令安装 Certbot 以及 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 目录中,同时虚拟主机也已配置好 HTTPS。
安装 MediaWiki
打开你常用的 Web 浏览器并访问你的域名,例如 http://wiki.howtoforge.local/ 。如果一切正常,你将看到 MediaWiki 欢迎页面。点击“set up the wiki”(配置 wiki)链接。

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

在环境检查步骤,确认你的系统满足 MediaWiki 的要求。然后再次点击 Continue(继续)。

数据库选择 MariaDB,并填入你的数据库名称、用户名和密码。然后点击 Continue(继续)进入下一步。

接下来,输入 MediaWiki 的管理员用户名、邮箱和密码,然后点击 Continue(继续)。

在附加设置中,选择你想要使用的默认主题,然后点击 Continue(继续)开始安装。

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


安装完成后,文件 LocalSettings.php 会自动下载到你的本地电脑,同时你会看到将该文件上传到 MediaWiki 安装目录的提示。

回到你的终端,运行以下命令新建文件 LocalSettings.php。
sudo -u www-data nano /var/www/mediawiki/LocalSettings.php
打开下载的 LocalSettings.php 文件,将其中的 PHP 代码复制并粘贴到服务器的文件中。然后保存并退出。
返回 Web 浏览器,点击进入 wiki 的链接。你将看到已安装的 MediaWiki 默认首页。

总结
恭喜!你已成功在 Debian 12 服务器上安装 MediaWiki。你通过 LAMP 套件(Apache、MariaDB 和 PHP)完成了 MediaWiki 的安装,并使用来自 Let's Encrypt 的 HTTPS 加固了 MediaWiki。