Hay muchas razones por las que puedes necesitar hacer una migración de una web. Quizá el servidor se te ha quedado pequeño, quizá el servicio contratado no ha estado a la altura o ha decaído con el tiempo, o puede que, como nos ha pasado a nosotros, el hosting compartido con el que comenzamos era incompatible con nuestras ganas de instalar, configurar y controlar todo lo que sucedía en el mismo.

Al final nos decidimos por digitalocean.com que por un precio muy ajustado tienes un servidor cloud que controlarás a tu antojo. Si estás pensando en migrar, te recomiendo que por lo menos te informes y lo tengas en consideración.

Hacer una copia de seguridad

El primer paso que debes tomar es crear una copia de seguridad de los archivos y de la base de datos. Si tienes un panel de control como cpanel, zpanel o virtualmin, es tan sencillo como un par de clicks de ratón. Pero como nos gusta hacer las cosas a nuestra manera, vamos a utilizar ssh para acceder al servidor y hacerlo todo con dos comandos. En linux puedes hacerlos desde la propia terminal, y en windows necesitarar un programa como putty.

zip -r <copiadeseguridad.zip> <directoriowordpress>

mysqldump –opt -h <servidor> -u <usuario> -p <basededatos> > <archivoexportado.sql>

El primero crea un archivo .zip con el directorio completo de WordPress, y el segundo exporta la base de datos a un archivo .sql que luego podremos importar. Debes substituir el texto dentro de <> por los valores que se apliquen en tu caso (ej zip -r archivo.zip public_html/wordpress). Si quieres una explicación más completa, he escrito dos artículos detallando cada uno de ellos. Visítalos en comprimir/descomprimir archivos e importar/exportar mysql.

Importar los datos en el nuevo servidor

Ahora toca hacer lo contrario en el nuevo servidor. Primero deberemos subir los dos archivos a una carpeta y luego podremos descomprimir uno e importar el otro. De nuevo, lo vamos a hacer a través de ssh, porque es muy sencillo y suele estar libre de problemas que pueden surgir por otros medios, como ftp o http. En esta ocasión son tres comandos distintos los usados, y además usaremos uno dos veces:

wget <url del archivo zip>

wget <url del archivo sql>

mysql -h <servidor> -u <usuario> -p <basededatos> < <archivoexportado.sql>

unzip <copiadeseguridad.zip> -d <directoriowordpress>

El primero descarga el archivo de copia de seguridad del servidor antiguo al nuevo. Lógicamente, deberá estar accesible públicamente. Si no estás seguro de la ruta, puedes usar ftp para colocarlo en la carpeta principal de tu web, así sólo tendrás que escribir tu dominio y el nombre del archivo (ej: http://midominio/miarchivo.zip). Es muy rápido y te ahorras el tener que descargarlo a tu ordenador y luego subirlo por ftp, que tarda mucho más. Lo mismo se aplica al segundo comando.

El tercero importa la base de datos y el cuarto descomprime la copia de seguridad en el directorio que le indiques. Debes substituir los valores dentro de <> por los tuyos. Si quieres ver más en detalle el funcionamiento de los mismos, te remito a las entradas del blog anteriormente indicadas, comprimir/descomprimir archivos y importar/exportar mysql.

Últimos detalles

Si tu dominio apunta a la carpeta de tu ‘nuevo’ WordPress, lo más seguro es que esté todo listo. Lo único que hay que cambiar en la configuración son los nuevos ajustes de la base de datos. Para eso debes abrir el archivo wp-config.php y cambiar los valores antiguos por los nuevos:

define(‘DB_NAME’, ‘**********’);

/** Tu nombre de usuario de MySQL */
define(‘DB_USER’, ‘********’);

/** Tu contraseña de MySQL */
define(‘DB_PASSWORD’, ‘*********’);

/** Host de MySQL (es muy probable que no necesites cambiarlo) */
define(‘DB_HOST’, ‘localhost’);

Ahora debería estar funcionando todo sin problemas. Lo único que me queda es daros una pequeña recomendación: No borréis la copia de seguridad de los archivos y de la base de datos que copiasteis al nuevo servidor. Incluso os  recomendaría que os la descargarais a vuestro ordenador y la conservarais, al menos un mes, hasta haber comprobado que todo funciona. Y no está de más hacer una copia de seguridad a la semana como mínimo, que ya no recuerdo cuantas veces me han salvado de un desastre, o simplemente por recuperar algún archivo en concreto que me interesaba ojear.

Actualización: Hemos publicado una guía de como cambiar el dominio principal de una Red de Blogs con WordPress Network. Si te interesa visita Cambiar el dominio principal de una red de blogs – WordPress Network.