Cuando realizamos una migración de una página web mucha gente parece que le tiemblen las piernas. Y no tiene que ser así. Tanto como si has utilizado un CMS o es una programación realizada por tí mismo el migrar la aplicación de nombre de dominio; o bien pasar del estado de desarrollo a testing o producción tiene que ser un proceso que no te lleve más de dos minutos.

Lo más importante de todo es abstraer en nuestra aplicación el nombre de dominio de cualquier enlace HTML o llamada interna. Eso es fundamental y una de las prácticas más importantes. Incluir hard-coded un enlace con el nombre de dominio http://nuestrodominio.tld lo único que hará es darnos problemas y ponernos palos en las ruedas ante cualquier migración. Debemos de separar Datos de Implementación.

Migrar un CMS como WordPress

WordPress se ha popularizado enormemente en los últimos años. Es sencillo, tiene una cantidad ingente de plugins y themes para su personalización; y una gran cantidad de desarrolladores y usuarios que la verdad dan muy buen soporte. Hay un plugin para casi todo, desde luego para realizar una migración de dominio o para realizar una cambio de servidor también.

De hecho existe un tutorial muy bueno en el Codex de WordPress en donde explica cómo hacerlo.

Linea de comandos en Bash: aún más fácil

Sin embargo realizar una migración de WordPress es aún más sencillo que todo eso. Realmente un CMS cuenta con dos partes claramente diferenciadas:

  • Por un lado con la estructura de ficheros y scripts en PHP, JavaScript y código HTML. Si está bien hecho y los plugins que utilizamos están bien desarrollados no tenemos nada de lo que preocuparnos. No existirá en ninguna parte del código una referencia al nombre de dominio de nuestro sitio sino llamadas a la BD que es donde tiene que estar esa información.
  • La BD de nuestro site en MySQL. Ahí es donde se almacena todo el contenido de nuestro site, información de plugins, configuraciones y por supuesto el nombre de dominio, que es el dato que nos interesa.

Vayamos por partes:

  1. Si vamos a realizar una migración de servidor y/o de dominio (que suele ser lo habitual) lo primero que deberemos de hacer es un volcado completo de la BD con mysqldump. Pero vamos a realizarlo por linea de comandos (o con PHPMyAdmin si os sentís más cómodos). Sin instalar plugins ni componentes adicionales.

    Por ejemplo en Debian utilizamos el fichero /etc/mysql/debian.cnf como root que nos permite realizar operaciones sobre el servidor MySQL sin conocer la contraseña de root de MySQL.

    # mysqldump --defaults-file=/etc/mysql/debian.cnf wordpress > wordpress.sql
  2. Una vez tenemos la BD lo que deberemos de hacer es buscar el nombre de dominio original y sustituirlo por el nuevo. Se puede hacer con un editor de texto con la herramienta de buscar y sustituir. Pero por linea de comando es mucho más rápido con el comando sed.
    # sed 's/dominio_antiguo.tld/dominio_nuevo.tld/g' wordpress.sql
  3. Lo siguiente que haremos será subir al nuevo servidor los ficheros de la aplicación por FTP (o el procedimiento que prefiráis). Mientras tanto podemos importar la BD con los datos del nuevo dominio en el servidor MySQL destino (recordad subirlo al servidor). Asumimos que utilizamos nuevamente un servidor Debian.
    # mysql --defaults-file=/etc/mysql/debian.cnf wordpress < wordpress.sql

IMPORTANTE: WordPress introduce objetos serilizados en su Base de Datos por lo que según que opciones puede que no funcionen conrrectamente empleando una sustitución simple con sed. Te recomiendo leas este otro artículo sobre sustitución de cadenas en objetos serializados.

Algunos detalles más

Hemos asumido que los datos de conexión a la BD del servidor de destino son los mismos que el de origen, pero no suele ser frecuente, sobre todo en servidores compartidos. De todos modos eso sólo supondrá revisar la configuración de la aplicación en el fichero wp-config.php.

También hemos asumido que utilizamos Debian a la hora de ejecuta mysql y mysqldump. También podemos utilizar la fórmula clásica:

# mysqldump -h hostname -u username -p wordpress > wordpress.sql

¿A que no es tan complicado? Desde luego mucho más rápido que andar instalando y desinstalando plugins en nuestra aplicación o realizar volcados con PHPMyAdmin.

Comparte si te ha gustado

Autor:
Última actualización:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.