Resucitando el blog de Gustavo Montes

gustavo.ekiry.com antiguo

Ayer dejó de funcionar el blog de Gustavo Montes, que tengo alojado en MartinServer. Me daba un error de conexión a la base de datos, pero aparentemente el servicio MySql estaba funcionando correctamente y todos los demás websites alojados en MartinServer funcionaban con normalidad. Mirando con un poco más de atención, descubrí el motivo: Ubuntu 16.04, versión a la que acababa de migrar mi servidor, viene con PHP7, y en PHP7 la extensión mysql se ha declarado obsoleta, teniendo que optar en su lugar por mysqli.
O sea, que en vez de gestionar la conexión a la base de datos así:

connect = mysql_connect(‘server’,’username’,”);
mysql_select_db(‘dbname’);

tendría que hacerlo más o menos así:
connection = mysqli_connect(‘server’, ‘username’, ‘password’, ‘database’);

No parece un gran cambio, pero realmente me hubiera supuesto reescribir gran parte del código (todos los selects y queries) de una instalación de Dotclear muy antigua (la 1.2.1, de 2006). No tenía mucho sentido, realmente merecía la pena actualizar el blog a un CMS más moderno.

Otra opción hubiera sido volver a la versión antigua de PHP, PHP 5.6, o hacer convivir ambas versiones en la misma máquina. Se puede seguir para esto el procedimiento detallado aquí. Pero, nuevamente, considero que es mejor actualizar de una vez el software de base del blog en vez de ir haciendo remiendos.

Dotclear

Mi primera intención fue migrar el blog a una versión moderna del mismo CMS, Dotclear. La versión instalada, como ya he dicho, tenía más de 10 años de antigüedad, era la 1.2.1. La actual versión de Dotclear es la 2.9.1, y realmente en todos estos años ha evolucionado tanto que es otro CMS totalmente distinto. No hay una forma fácil de hacer la migración entre ambas versiones, es casi tan difícil como migrar a otro CMS diferente.

La única solución era hacer una migración manual, así que opté por cambiar de CMS. Al igual que otros blogs de MartinServer, decidí migrar a la última versión de WordPress. Exporté la base de datos a XML, realicé una instalación limpia de WordPress en el servidor y, con la ayuda del plugin WP All Import, importé todos los artículos y comentarios.

Paso seguido, subí todas las imágenes del blog a la carpeta /wp-content/uploads y, finalmente, cambié dentro de la base de datos la ruta relativa hacia las imágenes con una sentencia SQL:

UPDATE <tabla> SET <post_content> = REPLACE ( <columna>, ‘<url antigua>’, ‘<url nueva>’ )

Y eso fue todo. Ya volvía a funcionar el blog de Gustavo Montes. Obviamente, la plantilla o template que utilizaba (Promenade para Dotclear) no servía, lo adapté para la plantilla Writr para WordPress y ahora el blog luce tal que así:

blog de Gustavo Montes