如何在Ubuntu 16.04上使用Nginx安装MediaWiki

在本教程中,我将逐步向您展示如何在Ubuntu 16.04上安装带有Nginx Web服务器的MediaWiki。我会指导你如何安装和...

如何在Ubuntu 16.04上使用Nginx安装MediaWiki

在本教程中,我将逐步向您展示如何在Ubuntu 16.04上安装带有Nginx Web服务器的MediaWiki。 我将指导您如何安装和配置用于MediaWiki安装的LEMP,包括为MediaWiki安全生成和配置新的免费SSL Letsencrypt。

MediaWiki是最早开发用于维基百科的最流行的维基软件之一。 这是一个用PHP编程语言编写的免费的开源软件,已经成为维基类别中最主要的软件。 该工具最初由Magnus Manske于2002年开发,现在版本为1.30。 MediaWiki已被许多大公司/组织使用,包括Nginx,Intel,Novell和NASA。

我们将要做什么:

  1. 在Ubuntu 16.04上安装Nginx
  2. 安装和配置PHP-FPM
  3. 安装和配置MySQL数据库
  4. 下载并配置MediaWiki
  5. 在Ubuntu 16.04上生成新的SSL Letsencrypt
  6. 为MediaWiki安装配置Nginx虚拟主机
  7. MediaWiki基于Web的安装
  8. 配置默认外观MediaWiki

先决条件

  • Ubuntu 16.04服务器
  • 根特权

第1步 - 在Ubuntu 16.04上安装Nginx

我们必须为MediaWiki安装做的第一步是安装Web服务器。 因此,在本节中,我们将安装Nginx Web服务器,启动Nginx服务,然后启用它在系统启动时自动启动。

在安装Web服务器之前,连接到您的服务器,更新所有存储库,然后升级。

sudo apt update
sudo apt upgrade -y

现在使用下面的apt命令安装Nginx。

sudo apt install nginx -y

之后,启动nginx并使其在系统启动时启动。

systemctl start nginx
systemctl enable nginx

现在使用netstat检查HTTP端口,并确保您看到Nginx使用的端口80。

netstat -plntu

检查nginx正在运行

Nginx Web服务器已经安装在Ubuntu 16.04上。

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

现在我们将在Ubuntu 16.04上安装PHP-FPM。 我们将使用PHP 7.0进行MediaWiki安装。

使用下面的apt命令安装PHP和PHP-FPM(以及所有必需的扩展)。

sudo apt install imagemagick php7.0-fpm php7.0-intl php7.0-xml php7.0-curl php7.0-gd php7.0-mbstring php7.0-mysql php-apcu

安装完成后,我们需要更改PHP-FPM的一些默认配置。 我们需要增加上传最大文件大小以及内存限制配置。

转到PHP配置目录,使用vim编辑php-fpm'php.ini'文件。

cd /etc/php/7.0
vim fpm/php.ini

将“upload_max_filesize”配置增加到“20M”,并将“memory_limit”增加到“128M”。

upload_max_filesize = 20M
memory_limit = 128M

保存并退出。

现在重新启动PHP-FPM服务并使其能够在引导时使用以下systemctl命令自动启动。

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

PHP-FPM现在在Ubuntu 16.04上运行,并在sock文件下运行。 使用下面的netstat命令检查它。

netstat -pl | grep php

你将得到如下所示的PHP-FPM sock文件。

配置PHP-FPM套接字

第3步 - 安装和配置MySQL数据库

MediaWiki将所有数据和内容存储在数据库中,并且与各种数据库服务器兼容。 对于本指南,我们将使用MySQL数据库进行MediaWiki安装。

在这一步中,我们将安装MySQL数据库服务器,然后为MediaWiki创建一个新的数据库和用户。

使用以下apt命令在Ubuntu 16.04上安装MySQL数据库。

sudo apt install mysql-server mysql-client -y

您将被要求输入MySQL的“root”密码 - 输入您自己的密码,然后按“Enter”键。

设置MySQL根密码

重复你的MySQL'root'密码。

重新输入root密码

MySQL安装完成。 现在启动MySQL并使其能够在启动时使用下面的systemctl命令启动。

systemctl start mysql
systemctl enable mysql

接下来,我们将为MediaWiki创建一个新的数据库和用户。 我们将用用户的“ mediawiki ”和密码“ mypassword ”创建一个名为“ mediawikidb ”的新数据库。

使用下面的mysql命令连接到mysql服务器。

mysql -u root -p

现在用下面的MySQL查询创建数据库和用户。

create database mediawikidb;
grant all privileges on mediawikidb.* to mediawiki@'localhost' identified by 'mypassword';
flush privileges;
exit;

在Ubuntu 16.04上安装MySQL服务器,并且已经创建了用于MediaWiki安装的数据库。

创建MediaWiki数据库

第4步 - 下载并配置MediaWiki

对于本指南,我们将使用最新的MediaWiki 1.30版本。 在我们下载MediaWiki之前,我们需要在服务器上安装一些软件包。

运行下面的apt命令来安装新的软件包。

sudo apt install composer git zip unzip -y

现在创建新的“mediawiki”目录并将mediawiki源代码克隆到该目录。

mkdir -p /var/www/mediawiki
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki

下载MediaWiki

接下来,进入'/ var / www / mediawiki'目录,使用composer命令安装MediaWiki安装所需的一些PHP依赖项。

cd /var/www/mediawiki
composer install --no-dev

运行Composer

在完成所有PHP依赖项安装后,将mediawiki目录的所有者更改为“www-data”用户和组。

chown -R www-data:www-data /var/www/mediawiki

最新版本的MediaWiki 1.30被下载到'/ var / www / mediawiki'目录中。

第5步 - 在Ubuntu 16.04上生成SSL Letsencrypt

出于安全原因,我们将在HTTPS连接下运行MediaWiki。 所有HTTP连接将自动重定向到HTTPS。 为此,我们需要SSL证书。 我们将使用Letsencrypt的免费SSL。

为了从Letsencrypt生成新的SSL证书,我们需要将letsencrypt命令行安装到服务器上。 使用以下命令来执行此操作:

sudo apt install letsencrypt -y

安装完成后,停止Nginx Web服务器。

systemctl stop nginx

接下来,使用下面的letsencrypt命令生成新的SSL证书。

letsencrypt certonly

您将被要求提供您的电子邮件地址 - 用于证书更新通知。

所以,输入您的电子邮件地址,然后选择“确定”。

生成让我们加密证书

对于Letsencrypt TOS(服务条款),请选择“同意”并按Enter键。

让encyrpt的服务条款

现在输入你的维基域名,我的是“wiki.hakase-labs.co”。

输入域名

完成后,您将得到如下所示的结果。

SSL证书创建

已经在“/ etc / letsencrypt / live”目录中生成了用于MediaWiki安装的SSL证书。

第6步 - 配置MediaWiki Nginx虚拟主机

用于MediaWiki安装的LEMP(Linux,Nginx,MySQL和PHP-FPM)已经建立,MediaWiki源代码已经下载到'/ var / www / mediawiki'目录中。

在这一步中,我们将创建一个新的Nginx虚拟主机文件“mediawiki”,然后激活虚拟主机。

转到Nginx配置目录,使用vim创建一个新的虚拟主机文件“mediawiki”。

cd /etc/nginx/
vim sites-available/mediawiki

将下面的Nginx虚拟主机粘贴到MediaWiki配置中。

# 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 Configuration
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        include snippets/fastcgi-php.conf;
    }

    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;
    }

}

根据您的要求/情况更改,然后保存并退出。

接下来,使用以下命令激活新的mediawiki虚拟主机。

ln -s /etc/nginx/sites-available/mediawiki /etc/nginx/sites-enabled/

测试nginx配置并确保没有错误。 然后重新启动服务。

nginx -t
systemctl restart nginx

在您的服务器上打开一个新的HTTPS端口443 - 按照以下方式使用netstat命令检查它。

netstat -plntu

结果如下所示。

配置Nginx

第7步 - MediaWiki基于Web的安装

现在打开您的网络浏览器,并在地址栏中输入您的域名。

http://wiki.hakase-labs.co

您将被重定向到HTTPS连接。

MediaWiki安装程序

点击页面上的“设置wiki”链接来配置MediaWiki。

- 语言配置

选择你自己的语言,我们将选择“英语”,然后点击“继续”。

语言配置

- 环境检查

现在,MediaWiki将执行环境检查。 确保你得到如下所示的结果。

检查安装环境

点击“继续”进行安装。

- 数据库配置

现在进行数据库配置。 在“数据库名称”字段中,输入前缀为“wiki_”的“mediawikidb”。 接下来,输入数据库用户'mediawiki'和密码'mypassword'。

数据库配置

然后点击“继续”。

- 数据库设置

至于数据库设置,只需保持默认状态,然后点击“继续”。

数据库设置

- 创建一个管理员用户

现在我们需要创建管理员帐户。 输入您自己的用户,密码和电子邮件,如下所示。

创建管理员用户

然后点击“继续”。

- MediaWiki附加配置

你应该进入“MediaWiki附加配置”页面。

额外的配置

保留默认值,然后点击“继续”。

- 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已经在Ubuntu 16.04服务器上安装了Nginx Web服务器。

MediaWiki已安装

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

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

转到“/ var / www / mediawiki /皮肤”目录并复制默认皮肤“Vector”。

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

下载MediaWiki皮肤

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

vim /var/www/mediawiki/LocalSettings.php

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

wfLoadSkin( 'Vector' );

而已。 保存并退出。

回到您的网络浏览器并刷新MediaWiki页面。 确保你得到MediaWiki与'Vector'皮肤如下所示。

矢量皮肤

MediaWiki在Ubuntu 16.04上安装和配置Nginx web服务器已经成功完成。

参考