MediaWiki es un software wiki popular que se desarrolló originalmente para su uso en Wikipedia. Es un software wiki gratuito y de código abierto escrito en el lenguaje de programación PHP. Creada por Magnus Manske en 2002, la herramienta se encuentra ahora en la versión 1.30. Muchas grandes empresas han utilizado MediaWiki, incluidas Nginx, Intel, Novell, etc.
En este tutorial, analizaremos cómo instalar MediaWiki paso a paso con el servidor web Nginx en CentOS 7. También lo guiaremos 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 Seguridad de MediaWiki.
Lo que haremos
- Instalar Nginx en CentOS 7
- Instalar y configurar PHP-FPM
- Instalar y configurar la base de datos MariaDB
- Descargar y configurar MediaWiki
- Generar nuevo SSL Letsencrypt en CentOS 7
- Configurar host virtual Nginx para la instalación de MediaWiki
- Instalación basada en web de MediaWiki
- Configurar la apariencia predeterminada de MediaWiki
Requisitos
- Servidor CentOS 7
- Privilegios de raíz
Paso 1:instalar Nginx en CentOS 7
Para este tutorial, utilizaremos el servidor web Nginx para la instalación de MediaWiki. En CentOS 7, el paquete Nginx no existe. Por lo tanto, debemos instalarlo desde el repositorio EPEL (Extra Packages for Enterprise Linux) de terceros.
Actualice todos los paquetes e instale el repositorio EPEL en el sistema CentOS 7 usando el comando yum a continuación.
yum -y update
yum -y install epel-release
A continuación, instale el servidor web Nginx.
yum -y install nginx
Una vez completada la instalación de Nginx, inicie el servidor y habilítelo para que se ejecute automáticamente al iniciar el sistema.
systemctl start nginx
systemctl enable nginx
Entonces, el servidor web Nginx se instaló en el servidor CentOS 7. Verifique las estadísticas de la red con el comando netstat y, como resultado, debería obtener el puerto HTTP que utiliza el servicio Nginx.
netstat -plntu
Paso 2:instalar y configurar PHP-FPM
En este tutorial, usaremos PHP 7.0. Y aquí, en este paso, instalaremos PHP 7.0 (incluidas las extensiones) y configuraremos PHP-FPM para la instalación de MediaWiki.
Usaremos paquetes PHP 7.0 del repositorio de terceros 'webtatic'. Agregue un nuevo repositorio 'webtatic' para la instalación de PHP 7.0 usando el siguiente comando.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Ahora podemos instalar PHP 7.0 con todas las extensiones necesarias usando el siguiente comando yum.
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
Con esto, se ha completado la instalación de PHP 7.0 en CentOS 7.
A continuación, configuraremos el servicio PHP-FPM. Editaremos el archivo php.ini para configurar la información de la ruta CGI y luego editaremos la configuración 'www.conf' para configurar el servicio PHP-FPM. Luego configuraremos PHP-FPM para que se ejecute bajo el archivo sock (con el usuario y grupo 'nginx').
Edite el archivo 'php.ini' usando el editor vim.
vim /etc/php.ini
Descomente la línea de abajo y cambie el valor a 0.
cgi.fix_pathinfo=0
Guarde los cambios y salga del editor.
Ahora edite el archivo de configuración de PHP-FPM 'www.conf'.
vim /etc/php-fpm.d/www.conf
Cambie el valor de línea de usuario y grupo a 'nginx'.
user = nginx
group = nginx
Ahora cambie el valor de la variable 'escuchar' al archivo 'php-fpm.sock', como se muestra a continuación.
listen = /run/php-fpm/php-fpm.sock
Necesitamos configurar los permisos del archivo sock, así como el propietario del directorio del archivo sock. Quite el comentario de la línea listen.owner y listen.group y cambie los valores correspondientes a 'nginx'.
listen.owner = nginx
listen.group =nginx
listen.mode = 0660
Para configuraciones adicionales, elimine los comentarios de las líneas a continuación.
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Eso es todo. Guardar y salir.
A continuación, cree un nuevo directorio para la configuración de rutas de sesiones.
Ejecute los comandos a continuación para crear el directorio de sesiones.
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/
Una vez hecho esto, inicie el servicio PHP-FPM y permita que se ejecute automáticamente al iniciar el sistema.
systemctl start php-fpm
systemctl enable php-fpm
Verifique PHP-FPM usando el comando netstat a continuación.
netstat -pl | grep php
Y asegúrese de obtener el archivo php-fpm.sock como resultado.
Paso 3:instalar y configurar la base de datos MariaDB
MediaWiki admite bases de datos MySQL/MariaDB y SQLite. En este tutorial, sin embargo, utilizaremos la base de datos MariaDB.
Para empezar, instale MariaDB utilizando el siguiente comando yum.
yum -y install mariadb mariadb-server
Una vez completada la instalación, inicie mariadb y habilítelo para que se inicie al iniciar el sistema.
systemctl start mariadb
systemctl enable mariadb
Ahora necesitamos configurar la contraseña 'root' para la base de datos MariaDB. Ejecute el siguiente comando para configurar la contraseña 'root' de MariaDB.
mysql_secure_installation
Escriba 'Y' y presione Entrar.
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
Se instaló MariaDB en el sistema CentOS 7 y se configuró la contraseña para el usuario 'root'.
A continuación, crearemos una nueva base de datos para MediaWiki. Específicamente, crearemos una nueva base de datos llamada 'mediawikidb ', con el nuevo usuario/propietario 'mediawiki ' y contraseña 'micontraseña '.
Conéctese al shell mysql usando el comando mysql.
mysql -u root -p
TYPE YOUR ROOT PASSWORD
Ahora ejecute las siguientes consultas mysql para crear una nueva base de datos para MediaWiki.
create database mediawikidb;
grant all privileges on mediawikidb.* to [email protected]'localhost' identified by 'mypassword';
flush privileges;
exit;
Se ha creado una nueva base de datos y usuario para la instalación de MediaWiki.
Paso 4:descarga y configura MediaWiki
En este tutorial, usaremos la última versión (1.30) de MediaWiki y descargaremos todo el código fuente de MediaWiki del repositorio. Entonces necesitamos git y algunos paquetes instalados en el sistema.
Instale git y otros paquetes usando el comando yum a continuación.
yum -y install git zip unzip composer
Una vez completada la instalación, cree un nuevo directorio '/var/www/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
A continuación, vaya al directorio '/var/www/mediawiki' e instale algunas dependencias de PHP necesarias para la instalación de MediaWiki usando el comando composer, como se muestra a continuación.
cd /var/www/mediawiki
composer install --no-dev
Ahora cambie los permisos de propiedad del directorio mediawiki a 'nginx' (tanto de usuario como de grupo).
chown -R nginx:nginx /var/www/mediawiki
La fuente de MediaWiki se ha descargado en el directorio '/var/www/mediawiki' y todas las dependencias se han instalado.
Paso 5:generar SSL Letsencrypt en CentOS 7
Por razones de seguridad, MediaWiki solo se ejecutará en la conexión HTTPS. Y todas las solicitudes a HTTP serán redirigidas a HTTPS por el servidor web de Nginx.
Para ejecutar MediaWiki bajo la conexión segura HTTPS, necesitamos certificados SSL. Por lo tanto, utilizaremos el certificado SSL gratuito de Letsencrypt.
Instalar permite cifrar la herramienta de línea de comandos usando el comando yum a continuación.
yum -y install letsencrypt
Una vez completada la instalación, detenga el servicio Nginx con el comando systemctl.
systemctl stop nginx
A continuación, generaremos un nuevo certificado SSL usando el comando letsencrypt. Pero antes de eso, asegúrese de que los servicios HTTP y HTTPS se hayan agregado a Firewalld.
Así es como agrega nuevos servicios HTTP y HTTPS a Firewalld.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Genere un nuevo SSL gratuito que permita cifrar el certificado usando el comando letsencrypt a continuación.
letsencrypt certonly
El comando le preguntará sobre la autenticación ACME. Elija el número '1' para girar el servidor web temporal.
A continuación, escriba su dirección de correo electrónico para la notificación de renovación, luego escriba 'A' para aceptar los Términos de servicio (TOS) de Letsencrypt y finalmente escriba su nombre de dominio wiki.
Después de hacer todo eso, obtendrá un resultado similar al que se muestra a continuación.
Se ha generado y almacenado un nuevo certificado SSL de Letsencrypt en el directorio '/etc/letsencrypt/live'.
Paso 6:configurar el host virtual Nginx para MediaWiki
En este paso, crearemos una nueva configuración de host virtual Nginx para MediaWiki.
Vaya al directorio '/etc/nginx' y cree un nuevo archivo de configuración 'mediawiki.conf' usando el editor vim.
cd /etc/nginx/
vim conf.d/mediawiki.conf
Pegue la configuración a continuación.
# 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;
}
}
Eso es todo. Guarde los cambios y salga del editor.
- Cambie el nombre de dominio a su propio dominio.
- Cambiar la ruta de los archivos de certificado SSL
Ahora pruebe la configuración de Nginx y asegúrese de que no haya ningún error, luego reinicie el servicio de Nginx.
nginx -t
systemctl restart nginx
Se agregó la configuración de host virtual de Nginx para MediaWiki y estamos listos para instalar MediaWiki desde el navegador web.
Paso 7:instalación basada en web de MediaWiki
Abra su navegador web y escriba la URL de MediaWiki.
http://wiki.hakase-labs.co/
Será redirigido a la conexión HTTPS. En la página web, haga clic en el enlace 'Configurar el wiki'.
Configuración de idioma
Elija el idioma inglés 'en' y haga clic en 'Continuar'.
Comprobación del entorno
Asegúrese de que toda la configuración del servidor haya superado las comprobaciones de entorno.
Luego haga clic en 'Continuar'.
Configuración de la base de datos
Escriba el nombre de la base de datos como 'mediawikidb' y el nombre de usuario 'mediawiki' con la contraseña 'mypassword'.
Ahora haga clic en 'Continuar'.
Configuración de la base de datos
Déjelo como predeterminado y haga clic en 'Continuar'.
Crear nuevo usuario administrador
Escriba su propio usuario administrador, correo electrónico, contraseña y luego haga clic en 'Continuar'.
Configuración adicional de MediaWiki
Ahora llegamos a la página sobre 'Configuración adicional de MediaWiki', como se muestra a continuación.
Deje todos los campos con valores predeterminados y haga clic en 'Continuar'.
Instalación de MediaWiki
Haga clic en 'Continuar' para instalar MediaWiki.
Y accederá a la página siguiente.
Haga clic en 'Continuar' nuevamente.
Y la instalación de MediaWiki está completa. Se nos pedirá que descarguemos el nuevo archivo 'LocalSettings.php'; descargue ese archivo.
A continuación, debemos cargar el archivo 'LocalSetting.php' recién descargado en el directorio de MediaWiki '/var/www/mediawiki' en el servidor. Además, no olvide cambiar los permisos de propiedad del archivo a 'www-data' (tanto de usuario como de grupo).
scp LocalSettings.php [email protected]:/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawiki
Regrese a la página de instalación de MediaWiki de su navegador web y haga clic en el enlace 'ingresar a su wiki'. Verá que MediaWiki se ha instalado con el servidor web Nginx en el servidor CentOS 7.
Paso 8:descarga y configura la máscara predeterminada de MediaWiki
En esta etapa, la instalación de MediaWiki se ha completado. Y en este paso, configuraremos el aspecto/tema predeterminado de nuestro sitio MediaWiki.
Vaya al directorio '/var/www/mediawiki/skins' y clone la máscara predeterminada llamada 'Vector' en ese directorio.
cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector
Cambie el propietario del directorio Vector skin al usuario y grupo 'nginx'.
chown -R nginx:nginx /var/www/mediawiki/skins/
Ahora edite el archivo 'LocalSettings.php' usando el editor vim.
vim /var/www/mediawiki/LocalSettings.php
Y pega el siguiente código PHP al final del archivo.
wfLoadSkin( 'Vector' );
Eso es todo. Guardar y salir.
Vuelva a su navegador web y actualice la página de MediaWiki. Asegúrate de ver MediaWiki con el aspecto 'Vector' como se muestra a continuación.
La instalación y configuración de MediaWiki con el servidor web Nginx en CentOS 7 se completó con éxito.