MediaWiki 是 Wikipedia 以及世界各地社区和公司部署的许多 wiki 背后的软件。 它常常被大公司用来做文档和百科全书。 本篇文章将教学如何在腾讯云轻量应用服务器上安装 MediaWiki。
安装前准备
- 首先需要一台腾讯轻量应用服务器 购买:https://curl.qcloud.com/PMRSrAiz
- 本教程将以 CentOS 8 演示,不依赖任何面板
安装 Web 服务
- 以Apache 2.4 为例:
sudo yum install httpd
- 启动 Apache 服务器:
sudo systemctl enable httpd.service
sudo systemctl start httpd.service
安装 PHP 环境
MediaWiki 需要 PHP 7.3.19–24、7.4.3 或更高版本。 但是,CentOS 软件包管理器 (Yum) 仅在其默认存储库中包含 PHP 7.2。 因此,您需要使用 Remi 存储库来获取较新的 PHP 版本之一。
为 Enterprise Linux (EPEL) 和 Remi 存储库添加额外的包:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
从 Remi 存储库安装 PHP:
sudo dnf module reset php sudo dnf module install php:remi-8.0
对于本示例,使用了最新版本的 PHP 8.0。 您也可以选择 7.3 或 7.4; 这样做会安装任一版本的最新版本。
安装
php-mysqlnd
模块以支持 MariaDB 的使用(如下所述):sudo dnf install php-mysqlnd
重启 Apache 服务:
sudo systemctl restart httpd
安装&配置 MariaDB 数据库
MediaWiki 支持多种数据库选项,包括 MariaDB、MySQL 和 PostgreSQL。 MariaDB 在 MediaWiki 文档中是首选,因此在我们将用 MariaDB 作为例子
安装 MariaDB:
sudo yum install mariadb-server
启动 MariaDB 服务:
sudo systemctl enable mariadb sudo systemctl start mariadb
安全安装 MariaDB:
sudo mysql_secure_installation
该脚本让您可以选择更改 MariaDB 的root密码、删除匿名用户帐户、禁用 localhost 之外的根登录以及删除测试数据库。 建议您对这些选项回答“是”。 您可以在 MariaDB 知识库 中阅读有关该脚本的更多信息。
通过以 root 用户身份打开 MariaDB (
sudo mysql -u root -p
) 并输入以下示例中给出的命令,为 MediaWiki 创建一个数据库和一个数据库用户。 将my_wiki
替换为所需的数据库名称,将wikiuser
替换为所需的数据库用户名,并将password
替换为该用户的密码,该密码不应与数据库的 root 密码匹配:CREATE DATABASE my_wiki; CREATE USER 'wikiuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON my_wiki.* TO 'wikiuser'@'localhost' WITH GRANT OPTION;
然后退出 MariaDB:
exit;
下载&提取 MediaWiki 文件
从 官方 MediaWiki 下载页面 下载包含最新版本 MediaWiki 软件的
tar.gz
。或用下面指令获取:
sudo yum install wget wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.0.tar.gz
将
tar.gz
文件移动到 Apache Web 服务器的文档目录。 您可以在 Apache 配置文件中的DocumentRoot
变量中找到文档目录,位于/etc/httpd/conf/httpd.conf
; 典型的文档目录是/var/www/html
,在以下示例中假定:sudo mv mediawiki-1.35.0.tar.gz /var/www/html
导航到文档目录,并提取归档文件:
cd /var/www/html/ sudo yum install tar sudo tar xvzf /var/www/html/mediawiki-1.35.0.tar.gz
建议您重命名生成的文件夹,因为文件夹名称成为用于导航到 MediaWiki 的 URL 的一部分。 对于本指南的其余部分,名称
w
iki 用于此文件夹:sudo mv /var/www/html/mediawiki-1.35.0 /var/www/html/w
安装 MediaWiki
在网络浏览器中,导航到基本 MediaWiki 文件夹中的“index.php”; 您可以使用 Web 域名(替换下面示例中的“wiki.idc.moe”)或 腾讯云提供的IP ,如下所示:
http://wiki.idc.moe/wiki/index.php
{{< note >}}
如果直接使用腾讯轻量的 IP 来安装 MediaWiki ,但以后想使用域名,您可以通过将 IP 地址更改为下面描述的“LocalSettings.php”文件中的适当域名来实现。
{{< /note >}}- 选择设置链接,然后继续执行设置步骤。 当提示输入数据库服务器时选择 MariaDB 选项,然后输入您为 MediaWiki 创建的数据库名称、用户名和用户密码。
- 在设置过程结束时出现提示时下载
LocalSettings.php
文件,然后将其移动或复制其内容到腾讯云轻量服务器上的/var/www/html/wiki/LocalSettings.php
。 设置权限为 664
sudo chmod 664 /var/www/html/wiki/LocalSettings.php
- 在浏览器中再次访问
index.php
以确认 MediaWiki 已成功安装。
555
@1
@@OSKPB
@1
1'"
@1
555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
@1
555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
@1
qO2tfJdu')) OR 511=(SELECT 511 FROM PG_SLEEP(15))--
@1
9sqeCgkg') OR 359=(SELECT 359 FROM PG_SLEEP(15))--
@1
1K9So8FO' OR 561=(SELECT 561 FROM PG_SLEEP(15))--
@1
-1)) OR 714=(SELECT 714 FROM PG_SLEEP(15))--
@1
-5) OR 495=(SELECT 495 FROM PG_SLEEP(15))--
@1
-5 OR 407=(SELECT 407 FROM PG_SLEEP(15))--
@1
Gwhfj0io'; waitfor delay '0:0:15' --
@1
1 waitfor delay '0:0:15' --
@1
-1); waitfor delay '0:0:15' --
@1
-1; waitfor delay '0:0:15' --
@1
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
@1
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
@1
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
@1
if(now()=sysdate(),sleep(15),0)
@1
-1" OR 2+775-775-1=0+0+0+1 --
@1
-1' OR 2+22-22-1=0+0+0+1 or 'MKj77D0J'='
@1
-1' OR 2+963-963-1=0+0+0+1 --
@1
-1 OR 2+446-446-1=0+0+0+1
@1
-1 OR 2+953-953-1=0+0+0+1 --
@1
P37xjzeZ
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
555
@1
1
1
1
1
1
1
1
1
1
1
1
1
@@46aMk
1'"
555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
ZvvYUZAg')) OR 617=(SELECT 617 FROM PG_SLEEP(15))--
f8aHJQpU') OR 50=(SELECT 50 FROM PG_SLEEP(15))--
9zzJ0lis' OR 97=(SELECT 97 FROM PG_SLEEP(15))--
-1)) OR 435=(SELECT 435 FROM PG_SLEEP(15))--
-5) OR 760=(SELECT 760 FROM PG_SLEEP(15))--
-5 OR 529=(SELECT 529 FROM PG_SLEEP(15))--
ATpbMgEN'; waitfor delay '0:0:15' --
1 waitfor delay '0:0:15' --
-1); waitfor delay '0:0:15' --
-1; waitfor delay '0:0:15' --
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
@@pa6rg
1'"
1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
if(now()=sysdate(),sleep(15),0)
3Zfr5v2S')) OR 841=(SELECT 841 FROM PG_SLEEP(15))--
-1" OR 2+980-980-1=0+0+0+1 --
-1' OR 2+61-61-1=0+0+0+1 or 'fKY87azf'='
-1' OR 2+558-558-1=0+0+0+1 --
-1 OR 2+310-310-1=0+0+0+1
-1 OR 2+657-657-1=0+0+0+1 --
gPAsWW3h
5B3N4y4Z') OR 917=(SELECT 917 FROM PG_SLEEP(15))--
555
qTTRTyRm' OR 467=(SELECT 467 FROM PG_SLEEP(15))--
555
-1)) OR 472=(SELECT 472 FROM PG_SLEEP(15))--
-5) OR 19=(SELECT 19 FROM PG_SLEEP(15))--
-5 OR 784=(SELECT 784 FROM PG_SLEEP(15))--
kDZ3Hzx2'; waitfor delay '0:0:15' --
1 waitfor delay '0:0:15' --
-1); waitfor delay '0:0:15' --
-1; waitfor delay '0:0:15' --
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
if(now()=sysdate(),sleep(15),0)
-1" OR 2+30-30-1=0+0+0+1 --
-1' OR 2+515-515-1=0+0+0+1 or 'sjTHFljn'='
-1' OR 2+529-529-1=0+0+0+1 --
-1 OR 2+273-273-1=0+0+0+1
-1 OR 2+10-10-1=0+0+0+1 --
RyBln3oP
555
1
555
1
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
555
请问在安装php时如果出现
Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
应该怎样去解决呢?
@Anray
555
@Anray
1
@Anray
@@z5BDh
@Anray
1'"
@Anray
1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
@Anray
1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
@Anray
pNOvl67k')) OR 905=(SELECT 905 FROM PG_SLEEP(15))--
@Anray
Ip1XRgSL') OR 159=(SELECT 159 FROM PG_SLEEP(15))--
@Anray
R2KXQMrd' OR 934=(SELECT 934 FROM PG_SLEEP(15))--
@Anray
-1)) OR 589=(SELECT 589 FROM PG_SLEEP(15))--
@Anray
-5) OR 427=(SELECT 427 FROM PG_SLEEP(15))--
@Anray
-5 OR 787=(SELECT 787 FROM PG_SLEEP(15))--
@Anray
6SUcoLty'; waitfor delay '0:0:15' --
@Anray
1 waitfor delay '0:0:15' --
@Anray
-1); waitfor delay '0:0:15' --
@Anray
-1; waitfor delay '0:0:15' --
@Anray
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
@Anray
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
@Anray
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
@Anray
if(now()=sysdate(),sleep(15),0)
@Anray
-1" OR 2+650-650-1=0+0+0+1 --
@Anray
-1' OR 2+266-266-1=0+0+0+1 or 'HAp43Fev'='
@Anray
-1' OR 2+473-473-1=0+0+0+1 --
@Anray
-1 OR 2+24-24-1=0+0+0+1
@Anray
-1 OR 2+428-428-1=0+0+0+1 --
@Anray
qCXyVbqd
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
1
@Anray
@@iqeD3
@Anray
1'"
@Anray
555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
@Anray
555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
@Anray
bflpkIPd')) OR 890=(SELECT 890 FROM PG_SLEEP(15))--
@Anray
X2wNtqjb') OR 290=(SELECT 290 FROM PG_SLEEP(15))--
@Anray
XTOhidpI' OR 85=(SELECT 85 FROM PG_SLEEP(15))--
@Anray
-1)) OR 743=(SELECT 743 FROM PG_SLEEP(15))--
@Anray
-5) OR 61=(SELECT 61 FROM PG_SLEEP(15))--
@Anray
-5 OR 755=(SELECT 755 FROM PG_SLEEP(15))--
@Anray
rMgbb31q'; waitfor delay '0:0:15' --
@Anray
1 waitfor delay '0:0:15' --
@Anray
-1); waitfor delay '0:0:15' --
@Anray
-1; waitfor delay '0:0:15' --
@Anray
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
@Anray
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
@Anray
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
@Anray
if(now()=sysdate(),sleep(15),0)
@Anray
-1" OR 2+30-30-1=0+0+0+1 --
@Anray
-1' OR 2+471-471-1=0+0+0+1 or 'TzWtT78a'='
@Anray
-1' OR 2+780-780-1=0+0+0+1 --
@Anray
-1 OR 2+567-567-1=0+0+0+1
@Anray
-1 OR 2+451-451-1=0+0+0+1 --
@Anray
HyCnM6Pa
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
请问在安装php时如果出现
Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
应该怎样去解决呢?
@Anray
555
@Anray
1
@Anray
@@V2AQk
@Anray
1'"
@Anray
555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
@Anray
555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
@Anray
JpzOQQyo')) OR 994=(SELECT 994 FROM PG_SLEEP(15))--
@Anray
NIRRKqzp') OR 134=(SELECT 134 FROM PG_SLEEP(15))--
@Anray
TSng9Z3B' OR 392=(SELECT 392 FROM PG_SLEEP(15))--
@Anray
-1)) OR 72=(SELECT 72 FROM PG_SLEEP(15))--
@Anray
-5) OR 765=(SELECT 765 FROM PG_SLEEP(15))--
@Anray
-5 OR 210=(SELECT 210 FROM PG_SLEEP(15))--
@Anray
cNnO2U3H'; waitfor delay '0:0:15' --
@Anray
1 waitfor delay '0:0:15' --
@Anray
-1); waitfor delay '0:0:15' --
@Anray
-1; waitfor delay '0:0:15' --
@Anray
(select(0)from(select(sleep(15)))v)/'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"/
@Anray
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
@Anray
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
@Anray
if(now()=sysdate(),sleep(15),0)
@Anray
-1" OR 2+296-296-1=0+0+0+1 --
@Anray
-1' OR 2+408-408-1=0+0+0+1 or 'YsNaQj1X'='
@Anray
-1' OR 2+201-201-1=0+0+0+1 --
@Anray
-1 OR 2+152-152-1=0+0+0+1
@Anray
-1 OR 2+985-985-1=0+0+0+1 --
@Anray
TSbkJTUk
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555
@Anray
555