如何在CentOS 7上安装带有Nginx的MediaWiki

如何使用Nginx安装MediaWiki oMediaWiki是一款流行的wiki软件,最初是为维基百科开发的。这是一个用PHP编程语言编写的免费开源维基软件。该工具由Magnus Manske于2002年推出,目前版本为1.30。MediaWiki已被许多大公司使用,包括Nginx、英特尔、Novell等

在本教程中,我们将讨论如何在CentOS 7上使用Nginx web服务器逐步安装MediaWiki。我们还将指导您如何安装和配置用于MediaWiki安装的LEMP堆栈,包括为MediaWiki安全生成和配置新的免费SSL Letsencrypt。

将做什么目录

在CentOS 7上安装Nginx
安装并配置PHP-FPM
安装并配置MariaDB数据库
下载并配置MediaWiki
在CentOS 7上生成新的SSL Letsencrypt
为MediaWiki安装配置Nginx虚拟主机
MediaWiki基于Web的安装
配置MediaWiki默认皮肤

前提条件

CentOS 7服务器
Root权限

第一步-在CentOS 7上安装Nginx

在本教程中,我们将使用Nginx web服务器安装MediaWiki。在CentOS 7上,Nginx包不存在。因此,我们需要从第三方EPEL(企业Linux的额外软件包)存储库安装它。

使用下面的yum命令更新所有软件包并在CentOS 7系统中安装EPEL存储库。

yum -y update
yum -y install epel-release

接下来,安装Nginx web服务器。

yum -y install nginx

Nginx安装完成后,启动服务器并使其在系统启动时自动运行。

systemctl start nginx
systemctl enable nginx

因此,Nginx web服务器已安装在CentOS 7服务器上。使用netstat命令检查网络统计数据,在结果中,您应该得到Nginx服务正在使用的HTTP端口。

netstat -plntu
图片[1]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

步骤2-安装和配置PHP-FPM

在本教程中,我们将使用PHP 7.0。在这里,在这一步中,我们将安装PHP 7.0(包括扩展)并为MediaWiki安装配置PHP-FPM。

我们将使用来自第三方存储库“webstatic”的PHP 7.0包。使用以下命令为PHP 7.0安装添加新的“webstatic”存储库。

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

至此,CentOS 7上的PHP 7.0安装已经完成。

接下来,我们将配置PHP-FPM服务。我们将编辑php.ini文件以配置CGI路径信息,然后编辑“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

现在将变量’listen’的值更改为’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文件。

图片[2]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

步骤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

MariaDB已安装在CentOS 7系统上,并且已配置“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 mediawiki@'localhost' identified by 'mypassword';
flush privileges;
exit;

MediaWiki安装的新数据库和用户已创建。

图片[3]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

步骤4-下载并配置MediaWiki

在本教程中,我们将使用MediaWiki的最新版本(1.30),并从存储库下载所有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
图片[4]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

现在将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命令安装lets-encrypt命令行工具。

yum -y install letsencrypt

安装完成后,使用systemctl命令停止Nginx服务。

systemctl stop nginx

接下来,我们将使用letsencrypt命令生成新的SSL证书。但在此之前,请确保HTTP和HTTPS服务已添加到防火墙中。

以下是如何向防火墙添加新的HTTP和HTTPS服务。

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
图片[5]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

生成新的免费SSL让我们使用下面的letsencrypt命令加密证书。

letsencrypt certonly

该命令将询问您有关ACME身份验证的信息。选择数字“1”来旋转临时web服务器。

接下来,键入续订通知的电子邮件地址,然后键入“A”以同意Letsencrypt服务条款(TOS),最后键入您的wiki域名。

图片[6]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

完成所有操作后,您将得到与下图所示类似的结果。

图片[7]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

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
图片[8]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

MediaWiki的Nginx虚拟主机配置已经添加,我们已经准备好从web浏览器安装MediaWiki。

步骤7-基于MediaWiki Web的安装

打开您的网络浏览器,键入MediaWiki URL。

http://wiki.hakase-labs.co/

您将被重定向到HTTPS连接。在网页上,单击“设置维基”链接。

图片[9]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

语言配置

选择英语“en”语言,然后单击“继续”。

图片[10]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

环境检查
确保所有服务器配置都通过了环境检查。

图片[11]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

然后单击“继续”。

数据库配置
键入数据库名称为“mediawikidb”,用户名为“mediawiki”,密码为“mypassword”。

图片[12]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

现在单击“继续”。

数据库设置
将其保留为默认值,然后单击“继续”。

图片[13]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

创建新管理员用户
键入您自己的管理员用户、电子邮件、密码,然后单击“继续”。

图片[14]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

MediaWiki附加配置
现在我们进入“MediaWiki附加配置”页面,如下所示。

图片[15]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

将所有字段保留为默认值,然后单击“继续”。

MediaWiki安装
单击“继续”安装MediaWiki。

图片[16]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

您将到达下面的页面。

图片[17]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

再次单击“继续”。

MediaWiki安装已完成。系统将提示我们下载新文件“LocalSettings.php”-下载该文件。

图片[18]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

接下来,我们需要将新下载的“LocalSetting.php”文件上传到服务器上的MediaWiki目录“/var/www/MediaWiki”。此外,不要忘记将文件的所有权权限更改为“www data”(用户和组)。

scp LocalSettings.php [email protected]:/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawiki

回到您的网络浏览器MediaWiki安装页面,然后单击“输入您的wiki”链接。您将看到MediaWiki已在CentOS 7服务器上安装了Nginx web服务器。

图片[19]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

步骤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' );
图片[20]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

就是这样。保存并退出。

回到您的网络浏览器并刷新MediaWiki页面。确保你能看到MediaWiki的“矢量”皮肤,如下所示。

图片[21]_如何在CentOS 7上安装带有Nginx的MediaWiki_马特资源网

MediaWiki在CentOS 7上与Nginx web服务器的安装和配置已成功完成。

参考
https://www.mediawiki.org/wiki/

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容