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安全保护。