如何在CentOS 7上使用Nginx安装MediaWiki

如何在CentOS 7上使用Nginx安装MediaWiki

MediaWiki是一个流行的维基软件,最初是为维基百科使用而开发的。 这是一个用PHP编程语言编写的免费和开源的wiki软件。 该工具于2002年由Magnus Manske带动,现在版本为1.30。 MediaWiki已被许多大公司使用,包括Nginx,Intel,Novell等。

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

我们将要做什么

  1. 在CentOS 7上安装Nginx
  2. 安装并配置PHP-FPM
  3. 安装和配置MariaDB数据库
  4. 下载并配置MediaWiki
  5. 在CentOS 7上生成新的SSL Letsencrypt
  6. 为MediaWiki安装配置Nginx虚拟主机
  7. MediaWiki基于Web的安装
  8. 配置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 Web服务器。

yum -y install nginx

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

systemctl start nginx
systemctl enable nginx

所以Nginx的网页服务器已经安装在CentOS 7服务器上。 使用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

借此,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文件。

第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安装的新数据库和用户。

第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

现在将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),最后键入您的维基的域名。

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

来自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连接。 在网页上,点击“设置维基”链接。

语言配置

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

环境检查

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

然后点击“继续”。

数据库配置

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

现在点击“继续”。

数据库设置

保持默认状态,然后点击“继续”。

创建新的管理员用户

输入您自己的管理员用户,电子邮件,密码,然后点击“继续”。

MediaWiki附加配置

现在我们进入到'MediaWiki Additional Configuration'页面,如下所示。

保留默认值的所有字段,然后点击“继续”。

MediaWiki安装

点击“继续”安装MediaWiki。

你会进入下面的页面。

再次点击“继续”。

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

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

scp LocalSettings.php root@hakase-labs.co:/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawiki

回到你的网页浏览器的MediaWiki安装页面,点击链接“进入你的wiki”。 您将看到MediaWiki已经在CentOS 7服务器上安装了Nginx Web服务器。

第8步 - 下载并配置MediaWiki默认皮肤

在这个阶段,MediaWiki安装已经完成。 在这一步中,我们将配置我们的MediaWiki网站的默认外观/主题。

转到“/ var / www / mediawiki /皮肤”目录,并将名为“Vector”的默认皮肤克隆到该目录。

cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector

将“外观”目录的所有者更改为“nginx”用户和组。

chown -R nginx:nginx /var/www/mediawiki/skins/

现在使用vim编辑器编辑'LocalSettings.php'文件。

vim /var/www/mediawiki/LocalSettings.php

并将以下PHP代码粘贴到文件末尾。

wfLoadSkin( 'Vector' );

而已。 保存并退出。

回到您的网络浏览器并刷新MediaWiki页面。 确保你看到MediaWiki与'矢量'皮肤如下。

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

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏