<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.castanedo.es/index.php?action=history&amp;feed=atom&amp;title=MediaWiki</id>
	<title>MediaWiki - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.castanedo.es/index.php?action=history&amp;feed=atom&amp;title=MediaWiki"/>
	<link rel="alternate" type="text/html" href="https://wiki.castanedo.es/index.php?title=MediaWiki&amp;action=history"/>
	<updated>2026-10-26T09:37:53Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://wiki.castanedo.es/index.php?title=MediaWiki&amp;diff=221&amp;oldid=prev</id>
		<title>Guzman: Página creada con «== Instalación MediaWiki en Docker == Instalación de [https://hub.docker.com/hardened-images/catalog/dhi/mediawiki dhi.io/mediawiki] en Docker. Vamos a usar una imagen &quot;Docker Hardened Image&quot; (imágenes seguras, mínimas y listas para producción).  == Requisitos == Para poder realizar esta configuración se necesita: * Servidor GNU Linux (ver Securizar Ubuntu Server) ** Cortafuegos FirewallD (UFW tiene problemas con Docker) * Docker Engine (ver [[Docker Engine]…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.castanedo.es/index.php?title=MediaWiki&amp;diff=221&amp;oldid=prev"/>
		<updated>2026-10-25T19:40:23Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «== Instalación MediaWiki en Docker == Instalación de [https://hub.docker.com/hardened-images/catalog/dhi/mediawiki dhi.io/mediawiki] en Docker. Vamos a usar una imagen &amp;quot;Docker Hardened Image&amp;quot; (imágenes seguras, mínimas y listas para producción).  == Requisitos == Para poder realizar esta configuración se necesita: * Servidor GNU Linux (ver &lt;a href=&quot;/wiki/Securizar_Ubuntu_Server&quot; title=&quot;Securizar Ubuntu Server&quot;&gt;Securizar Ubuntu Server&lt;/a&gt;) ** Cortafuegos FirewallD (UFW tiene problemas con Docker) * Docker Engine (ver [[Docker Engine]…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Instalación MediaWiki en Docker ==&lt;br /&gt;
Instalación de [https://hub.docker.com/hardened-images/catalog/dhi/mediawiki dhi.io/mediawiki] en Docker.&lt;br /&gt;
Vamos a usar una imagen &amp;quot;Docker Hardened Image&amp;quot; (imágenes seguras, mínimas y listas para producción).&lt;br /&gt;
&lt;br /&gt;
== Requisitos ==&lt;br /&gt;
Para poder realizar esta configuración se necesita:&lt;br /&gt;
* Servidor GNU Linux (ver [[Securizar Ubuntu Server]])&lt;br /&gt;
** Cortafuegos FirewallD (UFW tiene problemas con Docker)&lt;br /&gt;
* Docker Engine (ver [[Docker Engine]])&lt;br /&gt;
** Módulo: Docker Compose (para PRO)&lt;br /&gt;
* MariaDB &amp;gt; 10.3.0 (ver [[MariaDB]])&lt;br /&gt;
** Usaremos MariaDB para almacenar los datos. [https://www.mediawiki.org/wiki/Manual:Installation_requirements Más información].&lt;br /&gt;
* Nginx (ver [[LEMP]])&lt;br /&gt;
* Cuenta en Docker Hub&lt;br /&gt;
** Necesario para acceder a Docker Hardened Image.&lt;br /&gt;
&lt;br /&gt;
== Entorno de DEV ==&lt;br /&gt;
Como entorno de DEV se va a usar Docker Desktop.&lt;br /&gt;
&lt;br /&gt;
=== Login en catálogo DHI ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;docker login dhi.io&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Descargar imagen ===&lt;br /&gt;
Vamos a usar la imagen versión 1.46. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;docker pull dhi.io/mediawiki:1.46-debian-php-fpm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta imagen contiene ya los prerrequisitos de MediaWiki:&lt;br /&gt;
* PHP 8.3&lt;br /&gt;
* SQLLite 3.46.1&lt;br /&gt;
** No lo usaremos y se configurará para usar una MariaDB.&lt;br /&gt;
&lt;br /&gt;
=== Crear base de datos para MariaDB ===&lt;br /&gt;
Ver [[MariaDB]] para instalar MariaDB.&lt;br /&gt;
&lt;br /&gt;
=== Conectar a la base de datos ===&lt;br /&gt;
Conectamos como root:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mariadb-11.8 mariadb --host localhost --user root --password&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crear base de datos ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
CREATE DATABASE castanedo_wiki;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crear usuario ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
CREATE USER castanedowiki IDENTIFIED BY 'castanedowiki';&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dar permisos a usuario en BD ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
GRANT ALL PRIVILEGES ON castanedo_wiki.* TO 'castanedowiki' WITH GRANT OPTION;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comprobar permisos ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
SHOW GRANTS FOR 'castanedowiki';&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
| Grants for castanedowiki@%                                                                                   |&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
| GRANT USAGE ON *.* TO `castanedowiki`@`%` IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' |&lt;br /&gt;
| GRANT ALL PRIVILEGES ON `castanedo_wiki`.* TO `castanedowiki`@`%` WITH GRANT OPTION                           |&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pruebas conexión BBDD ===&lt;br /&gt;
Probaremos a conectar a la BBDD mediante el cliente [http://www.squirrelsql.org/ SquirrelSQL].&lt;br /&gt;
&lt;br /&gt;
=== Instalar MediaWiki en Docker Desktop (DEV) ===&lt;br /&gt;
* Crear el fichero &amp;quot;compose.yaml&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
   mediawiki:&lt;br /&gt;
      container_name: wikidev&lt;br /&gt;
      hostname: wikidev.castanedo.es&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
      volumes:&lt;br /&gt;
         - document-root:/var/www/html&lt;br /&gt;
         - data:/var/www/data&lt;br /&gt;
      image: dhi.io/mediawiki:1.46-debian-php-fpm&lt;br /&gt;
&lt;br /&gt;
   nginx:&lt;br /&gt;
      container_name: wikidev-nginx&lt;br /&gt;
      hostname: wikidev.castanedo.es&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
      ports:&lt;br /&gt;
         - &amp;quot;127.0.0.1:8080:80&amp;quot;&lt;br /&gt;
      depends_on:&lt;br /&gt;
         - mediawiki&lt;br /&gt;
      volumes:&lt;br /&gt;
         - document-root:/var/www/html:ro&lt;br /&gt;
         - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro&lt;br /&gt;
      image: dhi.io/nginx:1-debian13&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
   document-root:&lt;br /&gt;
   data:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crear el fichero &amp;quot;nginx.conf&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
&lt;br /&gt;
    # this config assumes that MediaWiki is installed into /var/www/html,&lt;br /&gt;
    # so LocalSettings.php would be located at /var/www/html/LocalSettings.php&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
    index index.php;&lt;br /&gt;
&lt;br /&gt;
    # allow larger file uploads and longer script runtimes&lt;br /&gt;
    client_max_body_size 100m;&lt;br /&gt;
    client_body_timeout 60;&lt;br /&gt;
&lt;br /&gt;
    # Uncomment the following code if you wish to use the installer/updater&lt;br /&gt;
    # installer/updater&lt;br /&gt;
    location /mw-config/ {&lt;br /&gt;
        # Do this inside of a location so it can be negated&lt;br /&gt;
        location ~ \.php$ {&lt;br /&gt;
            include fastcgi_params;&lt;br /&gt;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
            fastcgi_pass mediawiki:9000;&lt;br /&gt;
            fastcgi_index index.php;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Location for wiki's entry points&lt;br /&gt;
    location ~ ^/(index|load|api|thumb|opensearch_desc|rest|img_auth)\.php$ {&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_pass mediawiki:9000;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Images&lt;br /&gt;
    location ~ ^/(mw-config)?/images/ {&lt;br /&gt;
        # Separate location for images/ so .php execution won't apply&lt;br /&gt;
        add_header X-Content-Type-Options &amp;quot;nosniff&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
	# Disable php in /images/ (security)&lt;br /&gt;
	location ^~ /images/ {&lt;br /&gt;
		#Served like static files&lt;br /&gt;
	}&lt;br /&gt;
    location /images/deleted {&lt;br /&gt;
        # Deny access to deleted images folder&lt;br /&gt;
        deny all;&lt;br /&gt;
    }&lt;br /&gt;
    # MediaWiki assets (usually images)&lt;br /&gt;
    location ~ ^/resources/(assets|lib|src) {&lt;br /&gt;
        try_files $uri 404;&lt;br /&gt;
        add_header Cache-Control &amp;quot;public&amp;quot;;&lt;br /&gt;
        expires 7d;&lt;br /&gt;
    }&lt;br /&gt;
    # Assets, scripts and styles from skins and extensions&lt;br /&gt;
    location ~ ^/(skins|extensions)/.+\.(css|js|gif|jpg|jpeg|png|svg|wasm)$ {&lt;br /&gt;
        try_files $uri 404;&lt;br /&gt;
        add_header Cache-Control &amp;quot;public&amp;quot;;&lt;br /&gt;
        expires 7d;&lt;br /&gt;
    }&lt;br /&gt;
    # License and credits files&lt;br /&gt;
    location ~ ^/(COPYING|CREDITS) {&lt;br /&gt;
        default_type text/plain;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Handling for Mediawiki REST API, see [[mw:API:REST_API]]&lt;br /&gt;
    location /rest.php/ {&lt;br /&gt;
        try_files $uri $uri/ /rest.php?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Uncomment the following code for handling image authentication&lt;br /&gt;
    # Also add &amp;quot;deny all;&amp;quot; in the location for /images above&lt;br /&gt;
    #location /img_auth.php/ {&lt;br /&gt;
    #    try_files $uri $uri/ /img_auth.php?$query_string;&lt;br /&gt;
    #}&lt;br /&gt;
&lt;br /&gt;
    # Handling for the article path (pretty URLs)&lt;br /&gt;
    location /wiki/ {&lt;br /&gt;
        rewrite ^/wiki/(?&amp;lt;pagename&amp;gt;.*)$ /index.php;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Allow robots.txt in case you have one&lt;br /&gt;
    location = /robots.txt {&lt;br /&gt;
    }&lt;br /&gt;
    # Explicit access to the root website, redirect to main page (adapt as needed)&lt;br /&gt;
    location = / {&lt;br /&gt;
        return 301 /wiki/P%C3%A1gina_principal;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Every other entry point will be disallowed.&lt;br /&gt;
    # Add specific rules for other entry points/images as needed above this&lt;br /&gt;
    location / {&lt;br /&gt;
        return 404;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Arrancar MediaWiki&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Acceder a: [http://127.0.0.1:8080/ http://127.0.0.1:8080/]&lt;br /&gt;
&lt;br /&gt;
* Completar la configuración según necesidad.&lt;br /&gt;
&lt;br /&gt;
* IMPORTANTE: en este momento será se definirá que se quiere usar una base de datos MariaDB.&lt;br /&gt;
** Hostname o IP&lt;br /&gt;
** Usuario/contraseña&lt;br /&gt;
** Se generará la estructura vacía.&lt;br /&gt;
&lt;br /&gt;
* Descargar fichero LocalSettings.php&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero &amp;quot;compose.yaml&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
   mediawiki:&lt;br /&gt;
      container_name: wikidev&lt;br /&gt;
      hostname: wikidev.castanedo.es&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
      volumes:&lt;br /&gt;
         - document-root:/var/www/html&lt;br /&gt;
         - data:/var/www/data&lt;br /&gt;
         - ./LocalSettings.php:/var/www/html/LocalSettings.php:ro&lt;br /&gt;
      image: dhi.io/mediawiki:1.46-debian-php-fpm&lt;br /&gt;
&lt;br /&gt;
   nginx:&lt;br /&gt;
      container_name: wikidev-nginx&lt;br /&gt;
      hostname: wikidev.castanedo.es&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
      ports:&lt;br /&gt;
         - &amp;quot;127.0.0.1:80:80&amp;quot;&lt;br /&gt;
      depends_on:&lt;br /&gt;
         - mediawiki&lt;br /&gt;
      volumes:&lt;br /&gt;
         - document-root:/var/www/html:ro&lt;br /&gt;
         - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro&lt;br /&gt;
      image: dhi.io/nginx:1-debian13&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
   document-root:&lt;br /&gt;
   data:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reiniciar contenedores&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose dow&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pruebas ===&lt;br /&gt;
Accedemos con un navegador web [http://127.0.0.1:8080 http://127.0.0.1:8080].&lt;br /&gt;
&lt;br /&gt;
== Upgrade en DEV ==&lt;br /&gt;
Se va a realizar una prueba de actualización desde MediaWiki 1.39.8 a 1.46.&lt;br /&gt;
&lt;br /&gt;
=== Conectar a la base de datos ===&lt;br /&gt;
Conectamos como root:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mariadb-11.8 mariadb --host localhost --user root --password&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Borrar BBDD original ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
DROP DATABASE castanedo_wiki;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crear base de datos ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
CREATE DATABASE castanedo_wiki;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crear usuario ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
CREATE USER castanedowiki IDENTIFIED BY 'castanedowiki';&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dar permisos a usuario en BD ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
GRANT ALL PRIVILEGES ON castanedo_wiki.* TO 'castanedowiki' WITH GRANT OPTION;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comprobar permisos ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
SHOW GRANTS FOR 'castanedowiki';&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
| Grants for castanedowiki@%                                                                                   |&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
| GRANT USAGE ON *.* TO `castanedowiki`@`%` IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' |&lt;br /&gt;
| GRANT ALL PRIVILEGES ON `castanedo_wiki`.* TO `castanedowiki`@`%` WITH GRANT OPTION                           |&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importar BBDD original ===&lt;br /&gt;
* Copiar backup en BBDD&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp castanedo_wiki.sql mariadb-11.8:/var/backups/mariadb/castanedo_wiki.sql&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Importar backup&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it mariadb-11.8 bash&lt;br /&gt;
mariadb -u castanedowiki -p castanedo_wiki &amp;lt; /var/backups/mariadb/castanedo_wiki.sql&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copiar ficheros originales de configuracion ===&lt;br /&gt;
* Copiar Fichero LocalSettings.php&lt;br /&gt;
&lt;br /&gt;
* Copiar directory images&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp images wikidev:/var/www/html/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copiar directorio extensions&lt;br /&gt;
Nota: sólo copiar extensiones añadidas manualmente.&lt;br /&gt;
&lt;br /&gt;
=== Reiniciar contenedores ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose dow&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejecutar script de update ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it wikidev bash&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
php maintenance/run.php update&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Entorno de PRO ==&lt;br /&gt;
En el entorno de PRO se va a usar un servidor real.&lt;br /&gt;
&lt;br /&gt;
=== Configurar Virtual Host para MediaWiki ===&lt;br /&gt;
* Añadir Virtual Host:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;sudo -i&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;vi /etc/nginx/sites-available/wiki.castanedo.es&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
####################################&lt;br /&gt;
# WIKI.CASTANEDO.ES REVERSER PROXY #&lt;br /&gt;
####################################&lt;br /&gt;
server {&lt;br /&gt;
	listen 80;&lt;br /&gt;
	listen [::]:80;&lt;br /&gt;
	server_name wiki.castanedo.es;&lt;br /&gt;
	# Redirect HTTP to HTTPS&lt;br /&gt;
	return 301 https://$host$request_uri;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
server {&lt;br /&gt;
	# SSL configuration&lt;br /&gt;
	#&lt;br /&gt;
	listen 443 ssl http2;&lt;br /&gt;
	listen [::]:443 ssl http2;&lt;br /&gt;
	ssl_certificate /etc/ssl/certs/selfsigned.crt;&lt;br /&gt;
	ssl_certificate_key /etc/ssl/private/selfsigned.key;&lt;br /&gt;
	&lt;br /&gt;
	# Root directory&lt;br /&gt;
	root /var/www/wiki.castanedo.es;&lt;br /&gt;
&lt;br /&gt;
	# Add index.php to the list if you are using PHP&lt;br /&gt;
	index index.php index.html index.htm;&lt;br /&gt;
&lt;br /&gt;
	server_name wiki.castanedo.es;&lt;br /&gt;
&lt;br /&gt;
	access_log /var/log/nginx/wiki.castanedo.es-access.log;&lt;br /&gt;
	error_log /var/log/nginx/wiki.castanedo.es-error.log;&lt;br /&gt;
&lt;br /&gt;
	# Activate HSTS (HTTP Strict Transport Security)&lt;br /&gt;
	# Note: reinclude if in a location a header is set&lt;br /&gt;
	include snippets/hsts.conf;&lt;br /&gt;
&lt;br /&gt;
	# Allow favicon.ico, robots.txt, .well-known/&lt;br /&gt;
	# Deny *.txt, *.log, .*/*.php, .*, *.json, .lock, *.ht&lt;br /&gt;
	#include snippets/allowed.conf;&lt;br /&gt;
	#include snippets/denied.conf;&lt;br /&gt;
&lt;br /&gt;
	location / {&lt;br /&gt;
		# First attempt to serve request as file, then&lt;br /&gt;
		# as directory, then fall back to displaying a 404.&lt;br /&gt;
		#try_files $uri $uri/ =404;&lt;br /&gt;
		proxy_pass http://127.0.0.1:9081;&lt;br /&gt;
		#proxy_pass https://127.0.0.1:9444;&lt;br /&gt;
		# Set IP redirrect&lt;br /&gt;
		proxy_set_header Host $host;&lt;br /&gt;
		proxy_set_header X-Real-IP $remote_addr;&lt;br /&gt;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;
		proxy_set_header X-Forwarded-Proto $scheme;&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	location = /robots.txt {&lt;br /&gt;
		allow all;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	location ~* ^/.well-known/ {&lt;br /&gt;
		allow all;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crear carpeta para VirtualHost:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;mkdir /var/www/wiki.castanedo.es&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Activar Virtual Host:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;ln -s /etc/nginx/sites-available/wiki.castanedo.es /etc/nginx/sites-enabled/wiki.castanedo.es&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;systemctl reload nginx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Generar certificados Let's Encrypt ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;certbot --nginx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Conectar a la base de datos ===&lt;br /&gt;
Conectamos como root:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
mariadb --host localhost --user root --password&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crear base de datos (MariaDB) ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
CREATE DATABASE castanedo_wiki;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crear usuario ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
CREATE USER castanedowiki IDENTIFIED BY 'castanedowiki';&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dar permisos a usuario en BD ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
GRANT ALL PRIVILEGES ON castanedo_wiki.* TO 'castanedowiki' WITH GRANT OPTION;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comprobar permisos ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
SHOW GRANTS FOR 'castanedowiki';&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
| Grants for castanedowiki@%                                                                                   |&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
| GRANT USAGE ON *.* TO `castanedowiki`@`%` IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' |&lt;br /&gt;
| GRANT ALL PRIVILEGES ON `castanedo_wiki`.* TO `castanedowiki`@`%` WITH GRANT OPTION                           |&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Habilitar conexiones remotas ====&lt;br /&gt;
El necesario que la BD tenga configurada conexiones remotas (no sólo desde localhost).&lt;br /&gt;
Ver documento [[LEMP|Configuración MariaDB]].&lt;br /&gt;
&lt;br /&gt;
Nota: se recomienda NO exponer la base de datos a Internet. Es decir, sí habilitar las conexiones remotas, pero no abrir el puerto en los firewalls.&lt;br /&gt;
&lt;br /&gt;
=== Crear carpetas para MediaWiki ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p /opt/wiki.castanedo.es/data&lt;br /&gt;
mkdir -p /opt/wiki.castanedo.es/data/images&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Login en catálogo DHI ===&lt;br /&gt;
* Acceso a Docker Hub: https://app.docker.com/accounts/&amp;lt;user&amp;gt;/settings/personal-access-tokens&lt;br /&gt;
&lt;br /&gt;
* Generar nuevo token&lt;br /&gt;
[[Archivo:Culturetas-access-token.png|border|900px|none]]&lt;br /&gt;
&lt;br /&gt;
* Guardar token en lugar seguro&lt;br /&gt;
&lt;br /&gt;
* Acceder a Docker&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;docker login -u &amp;lt;user&amp;gt; dhi.io&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Nota: las imágenes Hardened son libres pero bajo registro.&lt;br /&gt;
&lt;br /&gt;
=== Descargar imagen ===&lt;br /&gt;
Vamos a usar la imagen versión 1.46. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;docker pull dhi.io/mediawiki:1.46-debian-php-fpm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Esta imagen contiene ya los prerrequisitos de MediaWiki:&lt;br /&gt;
* PHP 8.3&lt;br /&gt;
* SQLLite 3.46.1&lt;br /&gt;
** No lo usaremos y se configurará para usar una MariaDB.&lt;br /&gt;
&lt;br /&gt;
=== Instalar MediaWiki en Docker Desktop (PRO) ===&lt;br /&gt;
* Crear el fichero &amp;quot;compose.yaml&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
   mediawiki:&lt;br /&gt;
      container_name: wiki&lt;br /&gt;
      hostname: wiki.castanedo.es&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
      volumes:&lt;br /&gt;
         - document-root:/var/www/html&lt;br /&gt;
         - data:/var/www/data&lt;br /&gt;
      image: dhi.io/mediawiki:1.46-debian-php-fpm&lt;br /&gt;
&lt;br /&gt;
   nginx:&lt;br /&gt;
      container_name: wiki-nginx&lt;br /&gt;
      hostname: wiki.castanedo.es&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
      ports:&lt;br /&gt;
         - &amp;quot;127.0.0.1:9081:80&amp;quot;&lt;br /&gt;
      depends_on:&lt;br /&gt;
         - mediawiki&lt;br /&gt;
      volumes:&lt;br /&gt;
         - document-root:/var/www/html:ro&lt;br /&gt;
         - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro&lt;br /&gt;
      image: dhi.io/nginx:1-debian13&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
   document-root:&lt;br /&gt;
   data:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crear el fichero &amp;quot;/opt/wiki.castanedo.es/nginx.conf&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
    listen 80;&lt;br /&gt;
&lt;br /&gt;
    # this config assumes that MediaWiki is installed into /var/www/html,&lt;br /&gt;
    # so LocalSettings.php would be located at /var/www/html/LocalSettings.php&lt;br /&gt;
    root /var/www/html;&lt;br /&gt;
    index index.php;&lt;br /&gt;
&lt;br /&gt;
    # allow larger file uploads and longer script runtimes&lt;br /&gt;
    client_max_body_size 100m;&lt;br /&gt;
    client_body_timeout 60;&lt;br /&gt;
&lt;br /&gt;
    # Uncomment the following code if you wish to use the installer/updater&lt;br /&gt;
    # installer/updater&lt;br /&gt;
    location /mw-config/ {&lt;br /&gt;
        # Do this inside of a location so it can be negated&lt;br /&gt;
        location ~ \.php$ {&lt;br /&gt;
            include fastcgi_params;&lt;br /&gt;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
            fastcgi_pass mediawiki:9000;&lt;br /&gt;
            fastcgi_index index.php;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Location for wiki's entry points&lt;br /&gt;
    location ~ ^/(index|load|api|thumb|opensearch_desc|rest|img_auth)\.php$ {&lt;br /&gt;
        include fastcgi_params;&lt;br /&gt;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
        fastcgi_pass mediawiki:9000;&lt;br /&gt;
        fastcgi_index index.php;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Images&lt;br /&gt;
    location ~ ^/(mw-config)?/images/ {&lt;br /&gt;
        # Separate location for images/ so .php execution won't apply&lt;br /&gt;
        add_header X-Content-Type-Options &amp;quot;nosniff&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
	# Disable php in /images/ (security)&lt;br /&gt;
	location ^~ /images/ {&lt;br /&gt;
		#Served like static files&lt;br /&gt;
	}&lt;br /&gt;
    location /images/deleted {&lt;br /&gt;
        # Deny access to deleted images folder&lt;br /&gt;
        deny all;&lt;br /&gt;
    }&lt;br /&gt;
    # MediaWiki assets (usually images)&lt;br /&gt;
    location ~ ^/resources/(assets|lib|src) {&lt;br /&gt;
        try_files $uri 404;&lt;br /&gt;
        add_header Cache-Control &amp;quot;public&amp;quot;;&lt;br /&gt;
        expires 7d;&lt;br /&gt;
    }&lt;br /&gt;
    # Assets, scripts and styles from skins and extensions&lt;br /&gt;
    location ~ ^/(skins|extensions)/.+\.(css|js|gif|jpg|jpeg|png|svg|wasm)$ {&lt;br /&gt;
        try_files $uri 404;&lt;br /&gt;
        add_header Cache-Control &amp;quot;public&amp;quot;;&lt;br /&gt;
        expires 7d;&lt;br /&gt;
    }&lt;br /&gt;
    # License and credits files&lt;br /&gt;
    location ~ ^/(COPYING|CREDITS) {&lt;br /&gt;
        default_type text/plain;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Handling for Mediawiki REST API, see [[mw:API:REST_API]]&lt;br /&gt;
    location /rest.php/ {&lt;br /&gt;
        try_files $uri $uri/ /rest.php?$query_string;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Uncomment the following code for handling image authentication&lt;br /&gt;
    # Also add &amp;quot;deny all;&amp;quot; in the location for /images above&lt;br /&gt;
    #location /img_auth.php/ {&lt;br /&gt;
    #    try_files $uri $uri/ /img_auth.php?$query_string;&lt;br /&gt;
    #}&lt;br /&gt;
&lt;br /&gt;
    # Handling for the article path (pretty URLs)&lt;br /&gt;
    location /wiki/ {&lt;br /&gt;
        rewrite ^/wiki/(?&amp;lt;pagename&amp;gt;.*)$ /index.php;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Allow robots.txt in case you have one&lt;br /&gt;
    location = /robots.txt {&lt;br /&gt;
    }&lt;br /&gt;
    # Explicit access to the root website, redirect to main page (adapt as needed)&lt;br /&gt;
    location = / {&lt;br /&gt;
        return 301 /wiki/P%C3%A1gina_principal;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    # Every other entry point will be disallowed.&lt;br /&gt;
    # Add specific rules for other entry points/images as needed above this&lt;br /&gt;
    location / {&lt;br /&gt;
        return 404;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Arrancar MediaWiki&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Acceder a: [https://wiki.castanedo.es/ https://wiki.castanedo.es/]&lt;br /&gt;
&lt;br /&gt;
* Completar la configuración según necesidad.&lt;br /&gt;
&lt;br /&gt;
* IMPORTANTE: en este momento será se definirá que se quiere usar una base de datos MariaDB.&lt;br /&gt;
** Hostname o IP&lt;br /&gt;
** Usuario/contraseña&lt;br /&gt;
** Se generará la estructura vacía.&lt;br /&gt;
&lt;br /&gt;
* Descargar fichero LocalSettings.php&lt;br /&gt;
&lt;br /&gt;
* Copiar fichero en /opt/wiki.castanedo.es/LocalSettings.php&lt;br /&gt;
&lt;br /&gt;
* Editar el fichero &amp;quot;compose.yaml&amp;quot;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
   mediawiki:&lt;br /&gt;
      container_name: wiki&lt;br /&gt;
      hostname: wiki.castanedo.es&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
      volumes:&lt;br /&gt;
         - document-root:/var/www/html&lt;br /&gt;
         - data:/var/www/data&lt;br /&gt;
         - ./LocalSettings.php:/var/www/html/LocalSettings.php:ro&lt;br /&gt;
         - /opt/wiki.castanedo.es/data/images:/var/www/data/images&lt;br /&gt;
      image: dhi.io/mediawiki:1.46-debian-php-fpm&lt;br /&gt;
&lt;br /&gt;
   nginx:&lt;br /&gt;
      container_name: wiki-nginx&lt;br /&gt;
      hostname: wiki.castanedo.es&lt;br /&gt;
      restart: unless-stopped&lt;br /&gt;
      ports:&lt;br /&gt;
         - &amp;quot;127.0.0.1:9081:80&amp;quot;&lt;br /&gt;
      depends_on:&lt;br /&gt;
         - mediawiki&lt;br /&gt;
      volumes:&lt;br /&gt;
         - document-root:/var/www/html:ro&lt;br /&gt;
         - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro&lt;br /&gt;
      image: dhi.io/nginx:1-debian13&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
   document-root:&lt;br /&gt;
   data:&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Reiniciar contenedores&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose down&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Upgrade en PRO ==&lt;br /&gt;
Se va a realizar una prueba de actualización desde MediaWiki 1.39.8 a 1.46.&lt;br /&gt;
&lt;br /&gt;
=== Conectar a la base de datos ===&lt;br /&gt;
Conectamos como root:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
mariadb --host localhost --user root --password&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Borrar BBDD original ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
DROP DATABASE castanedo_wiki;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crear base de datos ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
CREATE DATABASE castanedo_wiki;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crear usuario ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
CREATE USER castanedowiki IDENTIFIED BY 'castanedowiki';&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dar permisos a usuario en BD ===&lt;br /&gt;
En este ejemplo creamos una BD para mediawiki:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
GRANT ALL PRIVILEGES ON castanedo_wiki.* TO 'castanedowiki' WITH GRANT OPTION;&lt;br /&gt;
FLUSH PRIVILEGES;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comprobar permisos ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
SHOW GRANTS FOR 'castanedowiki';&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
| Grants for castanedowiki@%                                                                                   |&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
| GRANT USAGE ON *.* TO `castanedowiki`@`%` IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' |&lt;br /&gt;
| GRANT ALL PRIVILEGES ON `castanedo_wiki`.* TO `castanedowiki`@`%` WITH GRANT OPTION                           |&lt;br /&gt;
+--------------------------------------------------------------------------------------------------------------+&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Importar BBDD original ===&lt;br /&gt;
* Copiar backup en BBDD&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
sftp guzman@ejemplo.com&lt;br /&gt;
cd /tmp&lt;br /&gt;
put castanedo_wiki.sql&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Importar backup&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
mariadb -u castanedowiki -p castanedo_wiki &amp;lt; /tmp/castanedo_wiki.sql&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copiar ficheros originales de configuracion ===&lt;br /&gt;
* Copiar Fichero LocalSettings.php&lt;br /&gt;
&lt;br /&gt;
* Copiar directory images&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker cp images wiki:/var/www/html/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copiar directorio extensions&lt;br /&gt;
Nota: sólo copiar extensiones añadidas manualmente.&lt;br /&gt;
&lt;br /&gt;
=== Reiniciar contenedores ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker compose down&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejecutar script de update ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
docker exec -it wiki bash&lt;br /&gt;
cd /var/www/html&lt;br /&gt;
php maintenance/run.php update&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Arrancar OpenLDAP (con SystemD) ===&lt;br /&gt;
* Crear fichero SystemD&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;vi /etc/systemd/system/wiki.castanedo.es.service&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=wiki.castanedo.es (Docker Compose)&lt;br /&gt;
After=docker.service mariadb.service network-online.target&lt;br /&gt;
Requires=docker.service mariadb.service&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
RemainAfterExit=yes&lt;br /&gt;
WorkingDirectory=/opt/wiki.castanedo.es&lt;br /&gt;
ExecStart=/usr/bin/docker compose up --detach --remove-orphans --quiet-pull&lt;br /&gt;
ExecStop=/usr/bin/docker compose down --remove-orphans --volumes --timeout 30&lt;br /&gt;
TimeoutStartSec=180&lt;br /&gt;
TimeoutStopSec=120&lt;br /&gt;
Restart=on-failure&lt;br /&gt;
RestartSec=7&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Arrancar y habilitar&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;systemctl daemon-reload&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;systemctl start wiki.castanedo.es&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;systemctl enable wiki.castanedo.es&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
* [https://hub.docker.com/hardened-images/catalog/dhi/mediawiki https://hub.docker.com/hardened-images/catalog/dhi/mediawiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:Upgrading https://www.mediawiki.org/wiki/Manual:Upgrading]&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Notas]]&lt;/div&gt;</summary>
		<author><name>Guzman</name></author>
	</entry>
</feed>