如何在 CentOS 7 上使用 Nginx 安装 MediaWiki
在此页
- 我们将做什么
- 先决条件
- 第 1 步 - 在 CentOS 7 上安装 Nginx
- 第 2 步 - 安装和配置 PHP-FPM
- 第 3 步 - 安装和配置 MariaDB 数据库
- 第 4 步 - 下载并配置 MediaWiki
- 第 5 步 - 在 CentOS 7 上生成 SSL Letsencrypt
- 第 6 步 - 为 MediaWiki 配置 Nginx 虚拟主机
- 第 7 步 - 基于 Web 的 MediaWiki 安装
- 语言配置
- 环境检查
- 数据库配置
- 数据库设置
- 创建新的管理员用户
- MediaWiki 附加配置
- MediaWiki 安装
MediaWiki 是一种流行的 wiki 软件,最初是为在维基百科上使用而开发的。它是一个用 PHP 编程语言编写的免费开源 wiki 软件。由 Magnus Manske 于 2002 年推出,该工具现在的版本为 1.30。 MediaWiki 已被许多大公司使用,包括 Nginx、Intel、Novell 等。
在本教程中,我们将讨论如何在 CentOS 7 上使用 Nginx Web 服务器逐步安装 MediaWiki。我们还将指导您如何安装和配置用于 MediaWiki 安装的 LEMP 堆栈,包括为 MediaWiki 生成和配置新的免费 SSL Letsencrypt MediaWiki 安全。
我们将要做什么
- 在 CentOS 7 上安装 Nginx
- 安装和配置 PHP-FPM
- 安装和配置 MariaDB 数据库
- 下载并配置 MediaWiki
- 在 CentOS 7 上生成新的 SSL Letsencrypt
- 为 MediaWiki 安装配置 Nginx 虚拟主机
- MediaWiki 基于 Web 的安装
- 配置 MediaWiki 默认皮肤
先决条件
- CentOS 7 服务器
- 根权限
第 1 步 - 在 CentOS 7 上安装 Nginx
对于本教程,我们将使用 Nginx Web 服务器来安装 MediaWiki。在 CentOS 7 上,Nginx 包不存在。所以我们需要从第三方 EPEL (Extra Packages for Enterprise Linux) 仓库安装它。
使用下面的 yum 命令更新所有软件包并在 CentOS 7 系统中安装 EPEL 存储库。
yum -y update
yum -y install epel-release接下来,安装 Nginx 网络服务器。
yum -y install nginx
Nginx 安装完成后,启动服务器并使其在系统启动时自动运行。
systemctl start nginx
systemctl enable nginx所以在CentOS 7服务器上已经安装了Nginx web服务器。使用 netstat 命令检查网络统计信息,在结果中,您应该获得 Nginx 服务正在使用的 HTTP 端口。
netstat -plntu
第 2 步 - 安装和配置 PHP-FPM
在本教程中,我们将使用 PHP 7.0。在这里,在此步骤中,我们将安装 PHP 7.0(包括扩展)并为 MediaWiki 安装配置 PHP-FPM。
我们将使用来自第三方存储库 webtatic 的 PHP 7.0 包。使用以下命令为 PHP 7.0 安装添加新的 webtatic 存储库。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
现在我们可以使用下面的 yum 命令安装 PHP 7.0 和所有需要的扩展。
yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu
至此,PHP 7.0 在 CentOS 7 上的安装就完成了。
接下来,我们将配置 PHP-FPM 服务。我们将编辑用于配置 CGI 路径信息的 php.ini 文件,然后编辑 www.conf 配置以配置 PHP-FPM 服务。然后我们将配置 PHP-FPM 在 sock 文件下执行(使用 nginx 用户和组)。
使用 vim 编辑器编辑 php.ini 文件。
vim /etc/php.ini
取消注释下面的行并将值更改为 0。
cgi.fix_pathinfo=0
保存更改,并退出编辑器。
现在编辑 PHP-FPM 配置文件 www.conf。
vim /etc/php-fpm.d/www.conf
将用户和组行值更改为 nginx。
user = nginx
group = nginx现在更改变量的值监听 php-fpm.sock 文件,如下所示。
listen = /run/php-fpm/php-fpm.sock
我们需要配置 sock 文件的权限,以及 sock 文件目录的所有者。取消注释 listen.owner 和 listen.group 行,并将相应的值更改为 nginx。
listen.owner = nginx
listen.group =nginx
listen.mode = 0660对于其他配置,取消注释下面的行。
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp就是这样。保存并退出。
接下来,为会话路径配置创建一个新目录。
运行以下命令以创建会话目录。
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/完成后,启动 PHP-FPM 服务并使其在系统启动时自动运行。
systemctl start php-fpm
systemctl enable php-fpm使用下面的 netstat 命令检查 PHP-FPM。
netstat -pl | grep php
并确保你得到了 php-fpm.sock 文件。
第 3 步 - 安装和配置 MariaDB 数据库
MediaWiki 支持 MySQL/MariaDB 和 SQLite 数据库。然而,在本教程中,我们将使用 MariaDB 数据库。
首先,使用下面的 yum 命令安装 MariaDB。
yum -y install mariadb mariadb-server
安装完成后,启动 mariadb 并使其在系统启动时启动。
systemctl start mariadb
systemctl enable mariadb现在我们需要为 MariaDB 数据库配置 root 密码。运行以下命令来配置 MariaDB root 密码。
mysql_secure_installation
键入 Y 并按 Enter。
Set root password? [Y/n] Y
TYPE ROOT PASSWORD HERE
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y在CentOS 7系统上安装了MariaDB,并配置了root用户的密码。
接下来,我们将为 MediaWiki 创建一个新的数据库。具体来说,我们将创建一个名为 mediawikidb 的新数据库,其中包含新用户/所有者 mediawiki 和密码 mypassword。
使用 mysql 命令连接到 mysql shell。
mysql -u root -p
TYPE YOUR ROOT PASSWORD现在运行以下 mysql 查询为 MediaWiki 创建一个新数据库。
create database mediawikidb;
grant all privileges on mediawikidb.* to 'localhost' identified by 'mypassword';
flush privileges;
exit;已为 MediaWiki 安装创建新的数据库和用户。
第 4 步 - 下载并配置 MediaWiki
在本教程中,我们将使用最新版本 (1.30) 的 MediaWiki,我们将从存储库下载所有 MediaWiki 源代码。所以我们需要在系统上安装 git 和一些包。
使用下面的 yum 命令安装 git 和其他包。
yum -y install git zip unzip composer
安装完成后,创建新目录 /var/www/mediawiki 并将 mediawiki 源代码克隆到该目录。
mkdir -p /var/www/mediawiki
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki接下来,进入 /var/www/mediawiki 目录并使用 composer 命令安装 MediaWiki 安装所需的一些 PHP 依赖项,如下所示。
cd /var/www/mediawiki
composer install --no-dev现在将 mediawiki 目录的所有权权限更改为 nginx(用户和组)。
chown -R nginx:nginx /var/www/mediawiki
MediaWiki 源代码确实已经下载到 /var/www/mediawiki 目录,并且所有依赖项都已安装。
第 5 步 - 在 CentOS 7 上生成 SSL Letsencrypt
出于安全原因,MediaWiki 将仅在 HTTPS 连接上运行。并且所有对 HTTP 的请求都会被 Nginx Web 服务器重定向到 HTTPS。
要在 HTTPS 安全连接下运行 MediaWiki,我们需要 SSL 证书。所以我们将使用 Letsencrypt 提供的免费 SSL 证书。
安装让加密命令行工具使用下面的 yum 命令。
yum -y install letsencrypt
安装完成后,使用 systemctl 命令停止 Nginx 服务。
systemctl stop nginx
接下来,我们将使用 letsencrypt 命令生成新的 SSL 证书。但在此之前,请确保 HTTP 和 HTTPS 服务已添加到 Firewalld。
下面介绍如何向 Firewalld 添加新的 HTTP 和 HTTPS 服务。
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload生成新的免费 SSL 让我们使用下面的 letsencrypt 命令加密证书。
letsencrypt certonly
该命令将询问您有关 ACME 身份验证的信息。选择数字 1 来旋转临时 Web 服务器。
接下来,输入您的续订通知电子邮件地址,然后输入 A 以同意 Letsencrypt 服务条款 (TOS),最后输入您的 wiki 域名。
完成所有这些后,您将得到类似于下图所示的结果。
来自 Letsencrypt 的新 SSL 证书已生成并存储在 /etc/letsencrypt/live 目录中。
第 6 步 - 为 MediaWiki 配置 Nginx 虚拟主机
在这一步中,我们将为 MediaWiki 创建新的 Nginx 虚拟主机配置。
转到 /etc/nginx 目录并使用 vim 编辑器创建新的配置文件 mediawiki.conf。
cd /etc/nginx/
vim conf.d/mediawiki.conf下面粘贴配置。
# HTTP Request will be Redirected to the HTTPS
server {
listen 80;
listen [::]:80;
server_name wiki.hakase-labs.co;
return 301 https://$host$request_uri;
}
# HTTPS Configuration
server {
listen 443 ssl;
listen [::]:443;
server_name wiki.hakase-labs.co;
root /var/www/mediawiki;
index index.php;
autoindex off;
# SSL Certificate Configuration
ssl_certificate /etc/letsencrypt/live/wiki.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wiki.hakase-labs.co/privkey.pem;
client_max_body_size 5m;
client_body_timeout 60;
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?title=$1&$args;
}
location ^~ /maintenance/ {
return 403;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
try_files $uri /index.php;
expires max;
log_not_found off;
}
location = /_.gif {
expires max;
empty_gif;
}
location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
deny all;
}
location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
internal;
}
# Security for 'image' directory
location ~* ^/images/.*.(html|htm|shtml|php)$ {
types { }
default_type text/plain;
}
# Security for 'image' directory
location ^~ /images/ {
try_files $uri /index.php;
}
}就是这样。保存更改并退出编辑器。
笔记:
- 将域名更改为您自己的域。
- 更改 SSL 证书文件的路径
现在测试Nginx配置,确保没有错误,然后重启Nginx服务。
nginx -t
systemctl restart nginx已添加 MediaWiki 的 Nginx 虚拟主机配置,并准备好从 Web 浏览器安装 MediaWiki。
第 7 步 - MediaWiki 基于 Web 的安装
打开您的网络浏览器并输入 MediaWiki URL。
http://wiki.hakase-labs.co/
您将被重定向到 HTTPS 连接。在网页上,单击设置 wiki 链接。
语言配置
选择英语 en 语言并单击继续。
环境检查
确保所有服务器配置都已通过环境检查。
然后单击继续。
数据库配置
输入数据库名称 mediawikidb,用户名 mediawiki 和密码 mypassword。
现在点击继续。
数据库设置
将其保留为默认值并单击继续。
创建新的管理员用户
键入您自己的管理员用户、电子邮件、密码,然后单击继续。
MediaWiki 附加配置
现在我们进入有关 MediaWiki 附加配置的页面,如下所示。
保留所有字段的默认值,然后单击继续。
MediaWiki 安装
单击继续以安装 MediaWiki。
你会到达下面的页面。
再次单击继续。
MediaWiki 安装完成。系统将提示我们下载新文件 LocalSettings.php - 下载该文件。
接下来,我们需要将刚刚下载的LocalSetting.php文件上传到服务器上的MediaWiki目录/var/www/mediawiki。另外,不要忘记将文件的所有权权限更改为 www-data(用户和组)。
scp LocalSettings.php :/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawiki返回您的网络浏览器 MediaWiki 安装页面,然后单击链接进入您的 wiki。您会看到 MediaWiki 已在 CentOS 7 服务器上安装了 Nginx 网络服务器。
第 8 步 - 下载并配置 MediaWiki 默认皮肤
至此,MediaWiki 的安装已经完成。在这一步中,我们将配置 MediaWiki 网站的默认皮肤/主题。
转到 /var/www/mediawiki/skins 目录并将名为 Vector 的默认皮肤克隆到该目录。
cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector将 Vector 皮肤目录的所有者更改为 nginx 用户和组。
chown -R nginx:nginx /var/www/mediawiki/skins/
现在使用 vim 编辑器编辑 LocalSettings.php 文件。
vim /var/www/mediawiki/LocalSettings.php
并将以下 PHP 代码粘贴到文件末尾。
wfLoadSkin( 'Vector' );
就是这样。保存并退出。
返回您的网络浏览器并刷新 MediaWiki 页面。确保您看到带有 Vector 皮肤的 MediaWiki,如下所示。
在 CentOS 7 上使用 Nginx Web 服务器安装和配置 MediaWiki 已成功完成。
参考
- https://www.mediawiki.org/wiki/