Este es uno de los capítulos del tutorial Self hosted, auto alojamiento y soberanía digital. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.
Hace muchos, pero que muchos años que soy un usuario fiel de WordPress, casi siempre en la modalidad de instalación en la máquina. Sin embargo, en los últimos tiempos, los WordPress que estoy instalando van sobre Docker. ¿Porque? Simplemente por facilidad de mantenimiento, no hay mas. Trabajar con WordPress sobre Docker es cuestión de coser y cantar, en un momento lo tienes instalado y funcionando sin ningún tipo de problemas. Y a las malas siempre tienes la posibilidad de volverlo a levantar o incluso utilizar otra imagen. Además, puedes utilizar imágenes oficiales. ¿Que mas se puede pedir?. Así, en las últimas instalaciones estoy aprovechando para mejorar la instalación, añadiendo en el mismo docker-compose Redis, y precisamente esto es lo que te quiero contar en este artículo.
WordPress en Docker y con Redis
¿Porque utilizar Redis?
¿Porque utilizar Redis con WordPress? Redis es una base de datos, pero con una característica muy interesante y la razón principal de utilizar junto a WordPress, y es que almacena los datos en RAM. Esto es lo que convierte a Redis en una base de datos tremendamente rápida.
Por ejemplo, cuando consultas una página de WordPress, primero la buscará en Redis, sino la encuentra la servirá desde MariaDB o MySQL. Sin embargo, además de servirla, la guardará en Redis. De esta forma, cuando alguien la vuelva a solicitar, esta vez, la servirá desde Redis y la servirá mucho más rápido.
Así, se me ocurre el caso, de cuando publicas un artículo. El primer día de su publicación lo leerá mas personas. Solo al primero le irá algo mas lento, mientras que al resto de personas que consulten la página en cuestión, irá mucho mas rápido, porque se sirve desde Redis.
Instalación
Indicarte que como de costumbre, todos los archivos de configuración, se encuentran disponibles en el repositorio de GitHub. Así, los pasos a realizar son los siguientes,
git clone https://github.com/atareao/self-hosted.git
cd self-hosted/wordpress
cp sample.env .env
sed -i "s/wp.tuservidor.es/el_fqdn_que_quieras/g" .env
cp wp.sample.env wp.env
Tendrás que modificar los parámetros que vienen en el archivo wp.env, para personalizar las contraseñas, y el resto de valores. Ten en cuenta, que algunos de estos valores son idénticos entre variables.
En general el resto de configuración no la tienes que modificar. Una vez realizados estos cambios tienes que levantar los contenedores. Esto dependerá del proxy inverso que hayas seleccionado. Si has elegido Caddy, simplemente,
docker-compose -f docker-compose.yml -f docker-compose.caddy.yml up -d
docker-compose logs -f
Mientras que si has elegido Traefik,
docker-compose -f docker-compose.yml -f docker-compose.traefik.yml up -d
docker-compose logs -f
El siguiente paso consiste en proceder a la instalación de WordPress. Para ello accede a la url donde has levantado el WordPress y sigue los pasos que te indica.
Configuración
Una vez lo tengas levantado e instalado, hay trabajo que realizar. Tienes que editar el archivo wp-config.php y añadir los siguientes parámetros:
define(‘WP_REDIS_HOST’, ‘wpredis’);
define(‘WP_REDIS_PORT’, 6379);
define(‘WP_REDIS_TIMEOUT’, 1);
define(‘WP_REDIS_READ_TIMEOUT’, 1);
define(‘WP_REDIS_DATABASE’, 0);
Una vez hecho esto, tienes que instalar un plugin para WordPress que te permite interaccionar con Redis. Este plugin o complemento es Redis Cache.
Una vez instalado, tienes que acceder a su configuración y habilitarlo para que entre en funcionamiento. Comprueba que todos los parámetros que te devuelve son correctos y que todo funciona como se espera.
wpcli
Por otro lado, recordarte, que además tienes un ejecutable wpcli que te permitirá trabajar directamente con WordPress desde la línea de comandos. Si no conoces wpcli
, indicarte que es una potente herramienta que te permitirá configurar y personalizar WordPress desde la línea de comandos.
Se trata de una herramienta realmente potente y con la que vas a poder realizar y automatizar muchos de los procesos que realizas habitualmente. Por ejemplo, podrás, actualizar todos los plugins.
El vídeo
A continuación podrás encontrar un vídeo en el que te muestro en vivo la instalación de WordPress en Docker y con Redis, junto a uno de mis proxy inversos preferidos, Traefik.
Cuando agrego las líneas del redis al wp-config.php deja de funcionar wordpress, las elimino y vuelve a funcionar :/
Olvidalo, ya funcionó, el error que me paso es que copié las líneas de redis directamente de este post, de ahí las copie desde el README.md y así sí funcionó, por lo que veo el tipo de comilla difiere de las del post a las del readme.
Gracias por el material, eres un crack.