Tecnología

Incognitosis se muda (un poco)

·

Este es uno de esos posts en modo sysadmin aficionado que en realidad no escribo para vosotros, sino para mí: para acordarme de cómo hice las cosas y cuáles son los problemas por los que pasé para resolverlos.

Desde hace unas semanas venía detectando algún problema en Incognitosis. Aquello de quitar la tipografía Linux Libertine en el blog para luego volver a recuperarla fue un poco síntoma de aquellos problemas. El blog no me cargaba lo suave que antes, y no sabía exáctamente qué pasaba. No era desde luego problema con mis VPS, que desde hace ya la friolera de 7 años están en Gigas, una empresa española con un servicio excepcional que me ha salvado ya de algún que otro susto.

El problema real llegó con una redirección que me estaba haciendo la puñeta. En algún momento el www.javipas.com no funcionaba: solo si ponías javipas.com a secas cargaba el blog. Como durante todos estos años he usado uno y otro formato de URLs a discreción, los problemas se multiplicaban y había muchos posts (antiguos sobre todo) que no cargaban directamente. Había que editar la URL y quitar las tres uves dobles de marras.

Y como los seres humanos solemos movernos por necesidad, acabé necesitando el cambio. La plataforma que he utilizado en los últimos (casi) tres años ha sido EasyEngine, un fantástico proyecto que permitía automatizar un montón de operaciones para poner en marcha un servidor y crear sitios wordpress con una simple línea de comandos. Una vez metido basaba hacer un

sudo ee site create javipas.com --cache -ssl=le

Y listo, en dos minutos tenías tu blog de WordPress con su base de datos, su configuración de Nginx, su certificado de Let’s Encrypt para el soporte HTTPS y la caché a través de Redis que funciona como un tiro y es aún mejor (creo) que aquello que monté en el pasado con HHVM —qué tiempos—.

Con EasyEngine ha pasado que no sé cómo hace lo que hace. No lo entiendo bien. Está totalmente basada en contenedores. Docker por aquí, docker por allá. Y como yo no me manejo con docker, me costó por ejemplo Dios y ayuda automatizar los dumps de la base de datos que hago con frecuencia para evitar historias. El mysqldump de turno ya no valía solito: había que conectarse a la instancia de docker con un comando bastante infernal que la verdad, jamás me aprendí. Lo copiaba y pegaba modificando el nombre del archivo final cada vez que tenía que tocarlo.

Todo ello hizo que buscara alternativas, y encontré una por sorpresa. De hecho encontré más: estuve jugueteando con Moss.sh, un servicio que se parece a otros como ServerPilot o el mítico CentminMod —que también usé durante una temporada—, y aunque está curiosete, al final cedes todo el control del servidor al dashboard de un tercero que es muy chulo visualmente pero que no me acababa de convencer acostumbrado como estoy a mi consolita. Por cierto, por lo que sé Moss.sh es un proyecto español cuyo fundador es este chico, y aunque a mí no me ha pirulado igual os mola a alguno, si queréis probarlo.

Total, que la alternativa que encontré era WordOps, que mola porque es un fork de EasyEngine perfecto para mí: nada de docker, amigos míos, pero toda la potencia de EasyEngine (e incluso parece que más). Como en EasyEngine, instalarlo todo es una chorrez y lo que antes llevaba miles de comandos ahora se hace con un par. La guía es estupenda y clarita, pero es que además de una documentación cristalina están unos foros de soporte con una participación extraordinaria. Ahora cuento por qué lo sé.

Migrar un sitio de WordPress no es complicado. No al menos para mí, porque he tenido que hacer docenas de migraciones y ya creo saberme los truquitos. Lo normal es que por un lado muevas el directorio wp-content, donde están plugins, temas e imágenes (uploads), y por otro muevas la base de datos, de la que puedes hacer un dump (copia) en un pispás. Normalmente tardo 10 minutos en completar el proceso.

Con Incognitosis llevo intentándolo dos semanas.

A ratos, claro, pero dos semanas. Este blog ya ocupa 2,5 GB por las imágenes que he ido usando durante todos estos años, y la base de datos ronda los 55 MB: los 3.272 posts y 27.738 comentarios (hasta ahora) hacen que la cosa haya ido a más también. No es una cosa monstruosa ni mucho menos, pero como además he ido metiendo cositas por medio (custom post types como los incognichollos), la cosa era un pelín más liosa. O podía serlo.

Total, que tras montar el blog básico en WordOps y comprobar que cargaba (Windows, como Linux, también tiene su fichero hosts para jugar con eso en C:\Windows\System32\drivers\etc\) me ponía manos a la obra. Copiaba todos los datos y la base de datos, sustituía directorio htdocs creado por WordOps por el mío y luego restauraba la base de datos con un sencillo

mysql -uroot -pcontraseña WP_javipas < backup_WP_javipas_fecha.sql

Con eso debería tirar, me decía. Pues no. Una tras otra vez me estrellaba con el muro. En cuanto importaba la base de datos el blog migrado petaba. Se cargaba la home, pero sin hoja de estilos. No podía acceder al backend (/wp-admin) y no podía cargar posts individuales. Aquello no había forma de cogerlo.

Mirando en los logs de acceso y errores de Nginx veía que había algún problema con Redis, y cansado de probar cosas me dirigí a los citados foros de la comunidad WordOps, donde pedí ayuda. Tras comprobar algunas de las cosas que me sugerían sin éxito, uno de los que respondió dio con la tecla: chavalote, me dijo, cuidado con WP_SITEURL y WP_HOME. En el sitio nuevo no tienes al principio soporte HTTPS (para eso las DNS tienen que estar redirigidas allí y con eso puedes pedir los certificados a Let’s Encrypt, pero no antes), así que hay que hacer que esos dos valores sean http://loquesea y no https://loquesea.

Esa era la clave.

Total, que el proceso fue algo distinto de lo normal, y efectivamente eso de jugar con sitios web con certificados para rular con HTTPS —hoy en día imprescindible— cambia un poco el proceso de migración. Al menos lo hizo en mi caso, porque lo que hice fue:

  1. En el blog original cambién esos dos parámetros también a través del wp-config.php, como indican por ejemplo aquí (hay otros métodos).
  2. Activé el tema twentytwenty que es el estándar de WordPress actualmente para evitar posibles conflictos por el tema.
  3. Hice la copia de la base de datos después de aplicar esos dos cambios.
  4. Volví a activar el tema de Incognitosis en el blog original (no sé si alguno visteis esos breves instantes el tema estándar).
  5. Restauré esa copia de la base de datos en el blog destino.
  6. Bingo: los posts por fin salían sin problemas en la plantilla TwentyTwenty del blog destino.
  7. Fui copiando gradualmente cositas del blog original (en un VPS) al blog destino (en otro) con el comando scp. No necesitaba tirar de rsync en este caso, pero era otra opción. Primero el tema, lo activé y al ver que funcionaba en el blog destino respiré. Esto marchaba.
  8. A partir de ahí fui copiando plugins, fui activándolos poco a poco y comprobaba que todo funcionaba. Efectivamente lo hacía.
  9. Por último copié toda la carpeta de imágenes (uploads) para que el blog destino tuviera todo en su sitio y se mostraran las imágenes.
  10. Fin.

Tras comprobar que todo funcionaba, ayer cambié las DNS en mi registrador de dominios para que a partir de ese momento Incognitosis apuntase a mi nuevo VPS, basado en WordOps y que entre otras cosas como digo evita el uso de contenedores. Y por último, claro, creé el certificado para el blog con un sencillo

wo site update javipas.com -le

Seguramente lo de quitarme de encima los contenedores no sea tan eficiente ni tan moderno, pero a mí me apaña que te pasas y me encanta como funciona todo. En la comunidad EasyEngine hay quien se queja de que este proyecto está algo abandonado y que WordOps ha logrado cogerle la delantera, y no me extrañaría que fuera así. Espero que EasyEngine siga adelante, pero hoy por hoy WordOps me parece estupendísimo. De hecho tiene un panel de control estupendo por si quieres aprovecharlo, y aunque son un poco fuegos artificiales, mola.

Es posible que no todo funcione en Incognitosis a la perfección, y como no puedo detectarlo todo os pido que si os falla algo me lo digáis. Justo hoy Trufeitor (gracias!) me avisaba por ejemplo de que el favicon no cargaba y los comentarios iban un poco raros. Creo que ya está solucionado (al menos lo del favicon), era un tema de la caché de Redis que no purga cuando debe. Creo que ya está apañado, pero lo dicho, si veis que algo no va fino, avisad.

De momento, espero, Incognitosis se ha mudado con éxito. Sé que no es un post muy entretenido para la mayoría, pero a mí me viene genial como recordatorio para futuros problemas 😉

Suscríbete a Incognitosis

¡Recibe en tu correo las nuevas entradas!

Standard

6 comentarios en “Incognitosis se muda (un poco)

  1. inthenite dice:

    Para mi ha sido una entrada muy entretenida 🙂 ¿Hay algún VPS que nos puedas recomendar? Estaba buscando uno para crear un blog y una web sencilla. Gracias!

    • Pues aquí tengo que recomendar el que patrocina este blog, claro, que no es otro que Gigas, del que he hablado en numerosas ocasiones. Empresa española con centros de datos aquí, así que latencias mínimas para contenidos en español con usuarios españoles. El centro de control es una chulada y el soporte, impecable.

      De hecho debería haberlo mencionado en el post, ahora lo edito, bien por el recordatorio 🙂

Comentarios cerrados.