En este tutorial, le mostraré paso a paso cómo instalar MediaWiki con el servidor web Nginx en Ubuntu 16.04. Lo guiaré sobre cómo instalar y configurar la pila LEMP para la instalación de MediaWiki, incluida la generación y configuración de un nuevo SSL Letsencrypt gratuito para la seguridad de MediaWiki.
MediaWiki es uno de los software wiki más populares que se desarrolló originalmente para su uso en Wikipedia. Es un software gratuito y de código abierto escrito en el lenguaje de programación PHP y se ha convertido en el software más dominante en la categoría de wiki. Originalmente desarrollada por Magnus Manske en 2002, la herramienta ahora está en la versión 1.30. Muchas grandes empresas u organizaciones han utilizado MediaWiki, incluidas Nginx, Intel, Novell y la NASA.
Qué haremos:
- Instalar Nginx en Ubuntu 16.04
- Instalar y configurar PHP-FPM
- Instalar y configurar la base de datos MySQL
- Descargar y configurar MediaWiki
- Generar nuevo SSL Letsencrypt en Ubuntu 16.04
- Configurar Nginx Virtual Host para la instalación de MediaWiki
- Instalación basada en web de MediaWiki
- Configurar máscara predeterminada MediaWiki
Requisitos previos
- Servidor Ubuntu 16.04
- Privilegios de raíz
Paso 1:instalar Nginx en Ubuntu 16.04
El primer paso que debemos hacer para la instalación de MediaWiki es instalar el servidor web. Entonces, en esta sección, instalaremos el servidor web Nginx, iniciaremos el servicio Nginx y luego lo habilitaremos para que se inicie automáticamente al iniciar el sistema.
Antes de instalar el servidor web, conéctese a su servidor, actualice todos los repositorios y luego actualice.
sudo apt update
sudo apt upgrade -y
Ahora instale Nginx usando el siguiente comando apt.
sudo apt install nginx -y
Después de eso, inicie nginx y permita que se inicie en el arranque del sistema.
systemctl start nginx
systemctl enable nginx
Ahora verifique el puerto HTTP usando netstat y asegúrese de ver que Nginx usa el puerto 80.
netstat -plntu
El servidor web Nginx se ha instalado en Ubuntu 16.04.
Paso 2:instalar y configurar PHP-FPM
Ahora instalaremos el PHP-FPM en Ubuntu 16.04. Y usaremos PHP 7.0 para la instalación de MediaWiki.
Instale PHP y PHP-FPM (junto con todas las extensiones requeridas) usando el comando apt a continuación.
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
Y una vez completada la instalación, debemos cambiar algunas configuraciones predeterminadas para PHP-FPM. Necesitamos aumentar el tamaño máximo de carga del archivo, así como las configuraciones de límite de memoria.
Vaya al directorio de configuración de PHP y edite el archivo php-fpm 'php.ini' usando vim.
cd /etc/php/7.0
vim fpm/php.ini
Aumente la configuración 'upload_max_filesize' a '20M' y aumente 'memory_limit' a '128M'.
upload_max_filesize = 20M
memory_limit = 128M
Guardar y salir.
Ahora reinicie el servicio PHP-FPM y permita que se inicie automáticamente en el momento del arranque usando los siguientes comandos systemctl.
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPM ahora se ejecuta en Ubuntu 16.04 y se ejecuta en el archivo sock. Compruébalo usando el comando netstat a continuación.
netstat -pl | grep php
Y obtendrá el archivo sock de PHP-FPM como se muestra a continuación.
Paso 3:instalar y configurar la base de datos MySQL
MediaWiki almacena todos los datos y contenidos en la base de datos y es compatible con una variedad de servidores de bases de datos. Para esta guía, usaremos la base de datos MySQL para la instalación de MediaWiki.
En este paso, instalaremos el servidor de la base de datos MySQL y luego crearemos una nueva base de datos y un usuario para MediaWiki.
Instale la base de datos MySQL en Ubuntu 16.04 usando el siguiente comando apt.
sudo apt install mysql-server mysql-client -y
Se le pedirá la contraseña 'root' de MySQL:escriba su propia contraseña y presione 'Enter'.
Repita su contraseña 'root' de MySQL.
La instalación de MySQL está completa. Ahora inicie MySQL y habilítelo para que se inicie en el momento del arranque usando los siguientes comandos systemctl.
systemctl start mysql
systemctl enable mysql
A continuación, crearemos una nueva base de datos y un nuevo usuario para MediaWiki. Crearemos una nueva base de datos llamada 'mediawikidb ' con el usuario 'mediawiki ' y contraseña 'micontraseña '.
Conéctese al servidor mysql usando el siguiente comando mysql.
mysql -u root -p
Ahora cree la base de datos y el usuario con las siguientes consultas de MySQL.
create database mediawikidb;
grant all privileges on mediawikidb.* to [email protected]'localhost' identified by 'mypassword';
flush privileges;
exit;
Servidor MySQL instalado en Ubuntu 16.04 y se ha creado la base de datos para la instalación de MediaWiki.
Paso 4:descarga y configura MediaWiki
Para esta guía, utilizaremos la última versión de MediaWiki 1.30. Y antes de descargar MediaWiki, necesitamos instalar algunos paquetes en el servidor.
Ejecute el siguiente comando apt para instalar nuevos paquetes.
sudo apt install composer git zip unzip -y
Ahora cree un nuevo directorio 'mediawiki' y clone el código fuente de mediawiki en ese directorio.
mkdir -p /var/www/mediawiki
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki
Luego, vaya al directorio '/var/www/mediawiki' e instale algunas dependencias PHP necesarias para la instalación de MediaWiki usando el comando composer.
cd /var/www/mediawiki
composer install --no-dev
Una vez completada la instalación de todas las dependencias de PHP, cambie el propietario del directorio mediawiki al usuario y grupo 'www-data'.
chown -R www-data:www-data /var/www/mediawiki
La última versión de MediaWiki 1.30 se descarga en el directorio '/var/www/mediawiki'.
Paso 5:generar SSL Letsencrypt en Ubuntu 16.04
Por razones de seguridad, ejecutaremos MediaWiki bajo la conexión HTTPS. Todas las conexiones HTTP se redirigirán automáticamente a HTTPS. Y para ello, necesitamos certificados SSL. Usaremos SSL gratuito de Letsencrypt.
Para generar nuevos certificados SSL desde Letsencrypt, necesitamos instalar la línea de comandos de letsencrypt en el servidor. Use el siguiente comando para hacer esto:
sudo apt install letsencrypt -y
Una vez completada la instalación, detenga el servidor web Nginx.
systemctl stop nginx
A continuación, genere nuevos certificados SSL utilizando el comando letsencrypt a continuación.
letsencrypt certonly
Se le pedirá su dirección de correo electrónico; se utiliza para la notificación de renovación del certificado.
Por lo tanto, escriba su dirección de correo electrónico y seleccione 'Aceptar'.
Para los TOS (Términos de servicio) de Letsencrypt, elija 'Acepto' y presione Entrar.
Y ahora escriba su nombre de dominio wiki, el mío es 'wiki.hakase-labs.co'.
Y cuando todo esté listo, obtendrá el resultado como se muestra a continuación.
Se han generado certificados SSL para la instalación de MediaWiki en el directorio '/etc/letsencrypt/live'.
Paso 6:configurar el host virtual MediaWiki Nginx
Se configuró la pila LEMP (Linux, Nginx, MySQL y PHP-FPM) para la instalación de MediaWiki y se descargó el código fuente de MediaWiki en el directorio '/var/www/mediawiki'.
En este paso, crearemos un nuevo archivo de host virtual Nginx 'mediawiki' y luego activaremos el host virtual.
Vaya al directorio de configuración de Nginx y cree un nuevo archivo de host virtual 'mediawiki' usando vim.
cd /etc/nginx/
vim sites-available/mediawiki
Pegue el siguiente host virtual Nginx para la configuración de MediaWiki allí.
# 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;
}
}
Cambie según su requisito/caso, y luego guarde y salga.
A continuación, active un nuevo host virtual de mediawiki con el siguiente comando.
ln -s /etc/nginx/sites-available/mediawiki /etc/nginx/sites-enabled/
Pruebe la configuración de nginx y asegúrese de que no haya ningún error. Luego reinicie el servicio.
nginx -t
systemctl restart nginx
Se abre un nuevo puerto HTTPS 443 en su servidor; verifíquelo usando el comando netstat de la siguiente manera.
netstat -plntu
A continuación se muestra el resultado.
Paso 7:instalación basada en web de MediaWiki
Ahora abra su navegador web y escriba su nombre de dominio en la barra de direcciones.
http://wiki.hakase-labs.co
Y será redirigido a la conexión HTTPS.
Haga clic en el enlace 'configurar el wiki' en la página para configurar MediaWiki.
- Configuración de idioma
Elija su propio idioma, elegiremos 'Inglés' y haga clic en 'Continuar'.
- Comprobación del entorno
Y ahora, MediaWiki realizará una verificación del entorno. Asegúrese de obtener el resultado como se muestra a continuación.
Haga clic en 'Continuar' para la instalación.
- Configuración de la base de datos
Ahora para la configuración de la base de datos. En el campo 'Nombre de la base de datos', escriba 'mediawikidb' con el prefijo 'wiki_'. A continuación, escriba el usuario de la base de datos 'mediawiki' y la contraseña 'mypassword'.
Y haga clic en 'Continuar'.
- Configuración de la base de datos
En cuanto a la configuración de la base de datos, simplemente déjela como predeterminada y haga clic en 'Continuar'.
- Crear un usuario administrador
Ahora necesitamos crear la cuenta de administrador. Escriba su propio usuario, contraseña y correo electrónico como se muestra a continuación.
Y haga clic en 'Continuar'.
- Configuración adicional de MediaWiki
Y debería ir a la página sobre 'Configuración adicional de MediaWiki'.
Déjelo con los valores predeterminados y haga clic en 'Continuar'.
- Instalación de MediaWiki
Ahora haga clic en 'Continuar' nuevamente para instalar MediaWiki.
Y accederá a una página similar a la que se muestra a continuación.
Haga clic en 'Continuar' nuevamente.
Ahora verá que la página dice que la instalación está completa. Se le pedirá que descargue el nuevo archivo 'LocalSettings.php' - descargue el archivo.
Y cargue el archivo 'LocalSetting.php' en el directorio del servidor mediawiki '/var/www/mediawiki'. Además, no olvide cambiar el propietario del archivo a usuario y grupo 'www-data'.
scp LocalSettings.php [email protected]:/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawiki
Ahora, regrese a la página de instalación de MediaWiki de su navegador web y haga clic en el enlace 'ingresar a su wiki'. Se le informará que MediaWiki se ha instalado con el servidor web Nginx en el servidor Ubuntu 16.04.
Paso 8:descargar y configurar la máscara predeterminada
En esta etapa, la instalación de mediawiki se ha completado. Y en este paso, configuraremos el aspecto/tema predeterminado.
Vaya al directorio '/var/www/mediawiki/skins' y clone la máscara predeterminada 'Vector'.
cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector
Ahora edite el archivo 'LocalSettings.php' usando el editor vim.
vim /var/www/mediawiki/LocalSettings.php
Y pegue el siguiente código php hacia el final del archivo.
wfLoadSkin( 'Vector' );
Eso es todo. Guardar y salir.
Vuelva a su navegador web y actualice la página de MediaWiki. Asegúrese de obtener el MediaWiki con la máscara 'Vector' como se muestra a continuación.
La instalación y configuración de MediaWiki con el servidor web Nginx en Ubuntu 16.04 se completó con éxito.