本页目录

  • 前提条件
  • 安装 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

在 Debian 12 上安装 MediaWiki 维基平台

安装完成后,验证 Apache 和 MariaDB 服务,确保两者都在运行。

使用以下命令验证 Apache Web 服务器。如果输出 enabled,说明 Apache 已启用并将在开机时自动启动。运行时你会看到 active (running) 的输出。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

在 Debian 12 上安装 MediaWiki 维基平台

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

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

在 Debian 12 上安装 MediaWiki 维基平台

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

php -v
php -m

在 Debian 12 上安装 MediaWiki 维基平台

配置 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;

在 Debian 12 上安装 MediaWiki 维基平台

接下来,运行以下查询验证 MariaDB 用户 mediawiki 的权限。确保 mediawiki 用户能够访问 mediawikidb 数据库。

SHOW GRANTS FOR mediawiki@localhost;

最后,输入 quit 退出 MariaDB。

在 Debian 12 上安装 MediaWiki 维基平台

下载 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

在 Debian 12 上安装 MediaWiki 维基平台

使用 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)链接。

在 Debian 12 上安装 MediaWiki 维基平台

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

在 Debian 12 上安装 MediaWiki 维基平台

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

在 Debian 12 上安装 MediaWiki 维基平台

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

在 Debian 12 上安装 MediaWiki 维基平台

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

在 Debian 12 上安装 MediaWiki 维基平台

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

在 Debian 12 上安装 MediaWiki 维基平台

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

在 Debian 12 上安装 MediaWiki 维基平台

在 Debian 12 上安装 MediaWiki 维基平台

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

在 Debian 12 上安装 MediaWiki 维基平台

回到你的终端,运行以下命令新建文件 LocalSettings.php。

sudo -u www-data nano /var/www/mediawiki/LocalSettings.php

打开下载的 LocalSettings.php 文件,将其中的 PHP 代码复制并粘贴到服务器的文件中。然后保存并退出。

返回 Web 浏览器,点击进入 wiki 的链接。你将看到已安装的 MediaWiki 默认首页。

在 Debian 12 上安装 MediaWiki 维基平台

总结

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