MediaWiki是一个免费开源的维基软件平台,可以在Rocky Linux上无缝运行,提供强大的协作内容创建和管理解决方案。MediaWiki最初是为Wikipedia设计的,现在被许多组织和社区广泛使用,用于构建和维护动态且信息丰富的网站。在Rocky Linux这个以稳定性和安全性著称的企业级Linux发行版上,MediaWiki受益于强大可靠的操作系统环境。这种组合确保了在Rocky Linux上的MediaWiki安装可以处理高流量负载和大量用户贡献,使其成为创建全面和可扩展维基的理想选择。

本指南将介绍如何在Rocky Linux 9服务器上安装MediaWiki。你将使用LAMP Stack(Apache/Httpd、MySQL/MariaDB和PHP)安装和配置MediaWiki。

前提条件

要完成本指南,请确保你具备以下条件:

- 一台Rocky Linux 9服务器。
- 一个具有sudo权限的非root用户。
- 一个指向服务器IP地址的域名。
- SELinux状态设置为permissive。

安装LAMP Stack依赖

MediaWiki是一个基于PHP和MySQL/MariaDB的开源维基软件。要安装它,你必须在Rocky Linux系统上安装LAMP Stack(Apache/httpd、MySQL/MariaDB和PHP)。在本示例中,你将使用PHP 8.1安装MediaWiki,因此需要添加第三方仓库。

首先,运行以下命令将EPEL和Remi仓库添加到你的Rocky Linux服务器。

sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm

目前,MediaWiki需要PHP 8.1,因此你必须通过Remi仓库启用它。运行以下命令从Remi仓库启用PHP 8.1仓库。

sudo dnf module reset php
sudo dnf module enable php:remi-8.1

现在运行以下命令安装MediaWiki的LAMP Stack依赖。输入y确认安装。

sudo dnf install httpd httpd-tools mariadb-server mariadb php php-mysqlnd php-gd php-xml php-intl php-mbstring php-json php-curl wget

安装完成后,运行以下systemctl命令启动并启用httpd服务。

sudo systemctl start httpd
sudo systemctl enable httpd

使用以下命令启动并启用MariaDB服务。

sudo systemctl start mariadb
sudo systemctl enable mariadb

最后,使用以下命令验证PHP版本。你应该看到Rocky Linux系统上安装了PHP 8.1。

php -v
php -m

将HTTP和HTTPS服务添加到Firewalld

安装LAMP Stack后,你需要在Rocky Linux服务器上开放HTTP和HTTPS端口。在基于RHEL的操作系统上,firewalld用于开放和管理允许进入服务器的流量。

通过执行以下命令将HTTP和HTTPS服务添加到firewalld。

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

现在使用以下命令重新加载firewalld以应用新规则。

sudo firewall-cmd --reload

重新加载后,使用以下命令验证firewalld上的规则列表。你应该看到HTTP和HTTPS服务都已添加到firewalld。

sudo firewall-cmd --list-all

配置MariaDB服务器

现在已经允许了到httpd Web服务器的流量,接下来可以通过mariadb-secure-installation工具保护MariaDB,并创建一个供MediaWiki使用的新数据库和用户。

要保护MariaDB服务器安装,运行以下mariadb-secure-installation命令。

sudo mariadb-secure-installation

在这个过程中,系统会询问你一些MariaDB服务器配置问题 - 输入y确认更改或n拒绝新配置:

- 切换到unix_socket认证?输入n并按回车。默认的MariaDB root用户已经受到保护。你也可以输入y启用它。
- 更改root密码?输入y确认并设置新的MariaDB root密码。
- 删除匿名用户?输入y确认。
- 禁止root远程登录?输入y确认。如果使用MariaDB root用户,则只允许本地连接。
- 删除测试数据库及其访问权限?输入y确认并删除默认的test数据库。
- 最后,再次输入y以重新加载MariaDB服务器上的所有表权限并应用新的更改。

保护MariaDB服务器后,你可以为MediaWiki创建新的数据库和用户。

使用以下命令登录MariaDB服务器。出现提示时输入MariaDB root密码。

sudo mariadb -u root -p

现在运行以下查询为MediaWiki创建新的数据库和用户。在本示例中,你将创建一个名为mediawikidb的新数据库和名为wikiuser的用户,密码为p4ssw0rd。你可以根据你的信息调整以下数据库详细信息。

CREATE DATABASE mediawikidb;
GRANT ALL PRIVILEGES ON mediawikidb.* TO 'wikiuser'@'localhost' IDENTIFIED BY 'p4ssw0rd' WITH GRANT OPTION;
FLUSH PRIVILEGES;

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

SHOW GRANTS FOR 'wikiuser'@'localhost';

最后,输入quit退出MariaDB服务器。

下载MediaWiki源代码

现在已经配置好了MariaDB服务器,接下来将下载MediaWiki源代码并为安装目录设置适当的权限。

进入/var/www/目录并使用以下wget命令下载MediaWiki源代码。查看MediaWiki下载页面获取最新版本的链接。

cd /var/www/
wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.0.tar.gz

下载完成后,运行以下命令解压MediaWiki源代码并将解压后的目录重命名为mediawiki。这样,你的MediaWiki安装文档根目录将是/var/www/mediawiki。

tar -zxpvf mediawiki-1.41.0.tar.gz
mv mediawiki-1.41.0 mediawiki

现在运行以下chown命令将/var/www/mediawiki的所有权更改为apache用户,允许httpd Web服务器访问MediaWiki源代码。

sudo chown -R apache:apache /var/www/mediawiki

如果你启用了SELinux,运行以下命令修复MediaWiki源代码的标签。

sudo restorecon -FR /var/www/mediawiki/

配置Httpd虚拟主机

下载MediaWiki源代码后,你将为MediaWiki创建新的虚拟主机配置。因此,请确保你有一个指向服务器IP地址的域名。

使用以下nano编辑器命令创建新配置文件/etc/httpd/conf.d/mediawiki.conf。

sudo nano /etc/httpd/conf.d/mediawiki.conf

插入以下配置,确保将ServerName选项更改为你的域名。

<VirtualHost *:80>

ServerName dev.domainhere.info
ServerAlias dev.domainhere.info
ServerAdmin admin@dev.domainhere.info
DocumentRoot /var/www/mediawiki

ErrorLog /var/log/httpd/dev.domainhere.info_error.log
CustomLog /var/log/httpd/dev.domainhere.info_access.log combined

<Directory /var/www/mediawiki/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>

</VirtualHost>

完成后,保存文件并退出编辑器。

现在运行以下命令验证httpd语法。如果输出显示Syntax OK,则说明你的httpd配置正确。

sudo apachectl configtest

最后,使用以下命令重启httpd服务以应用新的虚拟主机配置。

sudo systemctl restart httpd

通过Let's Encrypt为MediaWiki配置HTTPS

如果你在公共域名上安装MediaWiki,请确保实施HTTPS。在本示例中,你将从Let's Encrypt生成SSL/TLS证书并使用HTTPS保护MediaWiki。

首先,运行以下dnf命令安装Certbot和Apache插件。输入y确认安装。

sudo dnf install certbot python3-certbot-apache

安装完成后,运行以下certbot命令为你的MediaWiki域名生成SSL/TLS证书。确保将域名和邮箱地址更改为你的信息。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email alice@howtoforge.local -d wiki.howtoforge.local

该过程完成后,你的MediaWiki安装应该已经通过HTTPS保护,SSL/TLS证书将保存在/etc/letsencrypt/live/目录中。

安装MediaWiki

启动Web浏览器并访问你的MediaWiki域名,例如http://wiki.howtoforge.local/。如果一切正常,你应该会看到MediaWiki的欢迎页面。

点击"set up the wiki"链接。

选择MediaWiki默认语言并点击"Continue"。MediaWiki支持你需要的多种语言。

在环境检查过程中,确保你的系统满足MediaWiki要求。然后再次点击"Continue"。

现在输入数据库名称、用户和密码。然后点击"Continue"。

勾选"使用与安装相同的账户"选项并点击"Continue"。这样,你将使用相同的数据库来管理MediaWiki用户。

接下来,输入管理员用户、密码和邮箱地址,然后点击"Continue"。该用户将用作MediaWiki的管理员。

对于附加配置,再次点击"Continue"。你可以在安装完成后稍后配置这些选项。

现在点击"Continue"确认MediaWiki安装。

安装完成后,你将看到以下输出 - 点击Continue进入下一部分:

你将看到完成MediaWiki安装的附加说明:

- 下载LocalSettings.php文件。
- 将LocalSettings.php放在DocumentRoot目录中。

回到服务器终端,运行以下命令创建新文件LocalSettings.php。

touch /var/www/mediawiki/LocalSettings.php
sudo chown apache:apache /var/www/mediawiki/LocalSettings.php

使用nano编辑器命令编辑LocalSettings.php文件,将下载的PHP脚本内容输入其中。

nano /var/www/mediawiki/LocalSettings.php

保存并退出文件。

回到MediaWiki安装页面并点击链接进入你的wiki。你将看到MediaWiki的默认主页。

总结

恭喜!你已经完成了在Rocky Linux 9服务器上使用LAMP Stack(Apache/httpd、MariaDB和PHP)安装MediaWiki的过程。你还通过Certbot和Let's Encrypt为MediaWiki配置了HTTPS安全保护。