Continuando con nuestro curso sobre cómo montar WordPress en tu propio servidor en casa, hoy llega el turno de instalar el propio WordPress. Lo haremos de dos maneras diferentes para una mayor comprensión: una a través de la línea de comandos, como hemos visto hasta ahora, y otra utilizando Docker Compose en formato stack.
Para hacer el curso más completo, vamos a crear dos instalaciones de WordPress diferentes, lo que requerirá tener dos bases de datos distintas. Ya habíamos configurado MariaDB y PHPMyAdmin en la entrega anterior, utilizando Portainer para una gestión más sencilla.
Paso 1: Configurar las Bases de Datos y Usuarios en PHPMyAdmin
Antes de instalar WordPress, necesitamos preparar las bases de datos y los usuarios asociados. Accedemos a PHPMyAdmin usando el usuario root y la contraseña que configuramos (en nuestro ejemplo de test, 12345). Puedes acceder a PHPMyAdmin en tu navegador visitando http://[tu_ip_del_servidor]:38002.
Dentro de PHPMyAdmin:
- Creamos la primera base de datos. Vamos a “Nueva” y la nombramos wordpress1. Podríamos ajustar el cotejamiento, aunque el de por defecto puede servir, yo utilizo utf8mb3_general_ci.
- Creamos la segunda base de datos. De nuevo, vamos a “Nueva” y la nombramos wordpress2.
- Creamos un usuario específico para cada base de datos. Es altamente recomendable por seguridad no usar el usuario root para las instalaciones de WordPress. Si una instalación fuera comprometida, un usuario dedicado limita el riesgo al resto del sistema.
- Vamos a la sección “Cuentas de usuarios” y seleccionamos “Agregar cuenta de usuario”.
- Creamos el usuario wpuser1 con la contraseña wppass1 (¡Estas son para el ejemplo de test, usa contraseñas seguras y reemplaza estos valores en los comandos!).
- Asignamos a wpuser1 todos los privilegios sobre la base de datos wordpress 1.
- Repetimos el proceso para crear el usuario wpuser2 con la contraseña wppass2 y le damos todos los privilegios sobre la base de datos wordpress 2.
Una vez completado, verificamos que tenemos las bases de datos wordpress1 y wordpress1 y los usuarios wpuser1 y wpuser2 configurados correctamente.
Paso 2: Instalar la Primera Instancia de WordPress (Línea de Comandos)
Para la primera instalación, utilizaremos el método de línea de comandos, similar a cómo instalamos MariaDB y PHPMyAdmin.
Es importante elegir una versión específica de WordPress en lugar de usar siempre la etiqueta “latest”. Usar “latest” puede causar problemas de compatibilidad con otros componentes como la base de datos. Al usar una versión concreta, tienes más control sobre tu entorno y las actualizaciones. Podemos encontrar las diferentes versiones (“tags”) en el repositorio oficial de WordPress en Docker Hub.
Para este ejemplo, elegimos la versión 6.8 con PHP 8.3 y Apache.
El comando docker run ejecutará la descarga e instalación (si no tienes la imagen localmente). Deberás ejecutar un comando similar al siguiente en tu terminal (recuerda reemplazar los valores de usuario, contraseña y la ruta del volumen si son diferentes en tu configuración):
docker run -d \
--name wordpress1 \
--network MariadbNet \
-e WORDPRESS_DB_HOST=Mariadb \
-e WORDPRESS_DB_USER=wpuser1 \
-e WORDPRESS_DB_PASSWORD=wppass1 \
-e WORDPRESS_DB_NAME=wordpress1 \
-v /volume2/Docker/wordpress1/:/var/www/html \
-p 38101:80 \
wordpress:6.8.0-php8.3-apache
Después de ejecutarlo, podemos verificar en la sección “Containers” de Portainer que el contenedor wordpress1 está en estado “running”. También podemos revisar los logs del contenedor y verificar el volumen donde se almacenan los datos (/volume2/Docker/wordpress1 en el ejemplo) para confirmar que los ficheros de WordPress se han creado.
Paso 3: Instalar la Segunda Instancia de WordPress (Docker Compose / Stacks)
Ahora, instalaremos la segunda instancia utilizando el formato stack de Docker Compose. La principal ventaja de este método es que utiliza un fichero de lectura más fácil (formato YAML) y permite ejecutar la configuración directamente desde Portainer sin necesidad de usar la terminal. Los ficheros de línea de comandos pueden convertirse a formato YAML usando herramientas de inteligencia artificial.
En Portainer:
- Vamos a la sección “Stacks” y seleccionamos “Add stack”.
- Nombramos el stack wordpress 2.
En el editor web, pegamos el contenido del fichero Docker Compose. Este fichero especifica la configuración para los servicios que componen la aplicación (en este caso, solo WordPress, ya que la base de datos ya está corriendo en otro contenedor). El contenido del YAML sería similar a esto (recuerda reemplazar los valores de usuario, contraseña y la ruta del volumen):
version: '3'
services:
wordpress2:
image: wordpress:6.7.2-php8.1-apache
container_name: wordpress2
networks:
- MariadbNet
environment:
- WORDPRESS_DB_HOST=Mariadb
- WORDPRESS_DB_USER=wpuser2
- WORDPRESS_DB_PASSWORD=wppass2
- WORDPRESS_DB_NAME=wordpress2
volumes:
- /volume2/Docker/wordpress2/:/var/www/html
ports:
- 80:80
networks:
MariadbNet:
external: true
Hacemos clic en “Deploy the stack“. El proceso puede tardar unos minutos mientras se descarga la imagen y se configura. Una vez completado, veremos el stack wordpress2 en la lista de stacks. También podemos ver el contenedor asociado en la sección “Containers”, con el nombre wordpress2.
Paso 4: Acceder y Configurar las Instalaciones de WordPress
- Con ambos contenedores en estado running, podemos acceder a las instalaciones para completar la configuración inicial a través de un navegador web.
- Para la primera instalación (línea de comandos), accedemos a http://[tu_ip_del_servidor]:38101.
- Para la segunda instalación (stack), accedemos a http://[tu_ip_del_servidor]:8080.
- En ambos casos, seleccionamos el idioma (Español, por ejemplo), proporcionamos un título para el sitio (Las aficiones de Fernando WordPress 1 y Las aficiones de Fernando WordPress 2), definimos un nombre de usuario administrador (admin en el ejemplo) y una contraseña.
- Una vez dentro del panel de administración de cada sitio, podemos verificar la versión de WordPress instalada (por ejemplo, 6.8 en la primera y 6.7.2 en la segunda). Para distinguir fácilmente entre las dos instalaciones en el navegador, podemos personalizar visualmente algo, como el color del perfil de usuario (uno en azul y otro en rojo en el ejemplo).
Conclusión
Hemos completado la instalación de dos instancias de WordPress utilizando Docker, demostrando dos métodos de despliegue: la línea de comandos tradicional y el formato stack de Docker Compose. Hemos visto cómo preparar las bases de datos y usuarios con PHPMyAdmin para cada instalación, cómo elegir versiones específicas de WordPress, cómo ejecutar los comandos docker run y el despliegue del stack con Portainer, y cómo acceder y configurar cada sitio a través de diferentes puertos.
Aunque esta lección ha sido densa, sienta las bases para futuros pasos. ¡Ahora tienes dos entornos WordPress funcionales en tu servidor casero! En las próximas fases, exploraremos cómo acceder a estas instalaciones desde fuera de tu red local.
¡Muchas gracias por acompañarnos hasta el final!
Video
Enlaces de interés
Video tutorial “Cómo instalar WordPress + MariaDB + phpMyAdmin con Docker compose” por José M. Labarta – Enlace: https://www.youtube.com/watch?v=SjibdU4C_rg
Video “Instalar WordPress + MySQL + phpMyAdmin en Docker” con instrucciones paso a paso – Enlace: https://www.youtube.com/watch?v=EwIVqaLGbB8