如何在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。
我们将要做什么:
- 在Ubuntu 16.04上安装Nginx
- 安装和配置PHP-FPM
- 安装和配置MySQL数据库
- 下载并配置MediaWiki
- 在Ubuntu 16.04上生成新的SSL Letsencrypt
- 为MediaWiki安装配置Nginx虚拟主机
- MediaWiki基于Web的安装
- 配置默认外观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 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文件。
第3步 - 安装和配置MySQL数据库
MediaWiki将所有数据和内容存储在数据库中,并且与各种数据库服务器兼容。 对于本指南,我们将使用MySQL数据库进行MediaWiki安装。
在这一步中,我们将安装MySQL数据库服务器,然后为MediaWiki创建一个新的数据库和用户。
使用以下apt命令在Ubuntu 16.04上安装MySQL数据库。
sudo apt install mysql-server mysql-client -y
您将被要求输入MySQL的“root”密码 - 输入您自己的密码,然后按“Enter”键。
重复你的MySQL'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安装的数据库。
第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
接下来,进入'/ var / www / mediawiki'目录,使用composer命令安装MediaWiki安装所需的一些PHP依赖项。
cd /var/www/mediawiki
composer install --no-dev
在完成所有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键。
现在输入你的维基域名,我的是“wiki.hakase-labs.co”。
完成后,您将得到如下所示的结果。
已经在“/ 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
结果如下所示。
第7步 - MediaWiki基于Web的安装
现在打开您的网络浏览器,并在地址栏中输入您的域名。
您将被重定向到HTTPS连接。
点击页面上的“设置wiki”链接来配置MediaWiki。
- 语言配置
选择你自己的语言,我们将选择“英语”,然后点击“继续”。
- 环境检查
现在,MediaWiki将执行环境检查。 确保你得到如下所示的结果。
点击“继续”进行安装。
- 数据库配置
现在进行数据库配置。 在“数据库名称”字段中,输入前缀为“wiki_”的“mediawikidb”。 接下来,输入数据库用户'mediawiki'和密码'mypassword'。
然后点击“继续”。
- 数据库设置
至于数据库设置,只需保持默认状态,然后点击“继续”。
- 创建一个管理员用户
现在我们需要创建管理员帐户。 输入您自己的用户,密码和电子邮件,如下所示。
然后点击“继续”。
- 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服务器。
第8步 - 下载和配置默认皮肤
在这个阶段,mediawiki的安装已经完成。 在这一步中,我们将配置默认的外观/主题。
转到“/ var / www / mediawiki /皮肤”目录并复制默认皮肤“Vector”。
cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector
现在使用vim编辑器编辑'LocalSettings.php'文件。
vim /var/www/mediawiki/LocalSettings.php
并将以下php代码粘贴到文件末尾。
wfLoadSkin( 'Vector' );
而已。 保存并退出。
回到您的网络浏览器并刷新MediaWiki页面。 确保你得到MediaWiki与'Vector'皮肤如下所示。
MediaWiki在Ubuntu 16.04上安装和配置Nginx web服务器已经成功完成。