Migrando WordPress manualmente desde servidor de producción a servidor local

Cuando tenemos un sitio montado online en WordPress y queremos hacer cambios para agregar una nueva funcionalidad y hacer testing, o probar distintos temas y evitar que algo falle, nos encontramos en la situación de tener que replicar ese sitio en un servidor seguro.

Esto podríamos plantearlo en términos de migración también. Cuando queremos migrar un sitio, lo que hacemos es duplicarlo, replicarlo o transferirlo a otro server, ya sea local u online.

Entendiendo el contenido y su estructura

Son cosas que se manipulan de diferente manera. Mientras el contenido se guarda siempre en la base de datos de nuestra instalación, la estructura es un sistema de carpetas dentro de nuestro WordPress que podemos manipular como cualquier otro archivo del ordenador.

Por eso, para migrar un sitio en WordPress, se debe tener en cuenta estos dos contextos para migrar el sitio completo. Hay muchos plugins para resolver esta situación, pero en este artículo me voy a enfocar en el modo manual. Por un lado es el más sensible y peligroso si no se hace bien, y por otro lado podemos ver en profundidad qué problemas pueden surgir y entender mucho mejor cómo está armado nuestro WordPress.

Migrando la estructura

Para ejemplificar todo este artículo, trabajaré en la migración de un sitio online a local, es decir, a nuestro ordenador.

Lo primero que haremos es migrar nuestra estructura. Para esto lo habitual es utilizar un programa de FTP, como por ejemplo Cyberduck. Debemos tener en cuenta siempre de poseer los datos de acceso a nuestro sitio, en este caso las credenciales FTP que nuestro proveedor de hosting nos habrá dado oportunamente.

Con los datos que nos dio nuestro hosting, completamos los campos de: Servidor, Usuario y Contraseña.

Una vez dentro de nuestro sitio, debemos entrar en la carpeta que contiene nuestro WordPress. Habitualmente será alguna de estas: www, web, public, public_html, htdocs. En cualquier caso nuestro hosting debe proveernos de estos datos.

Cuando ya estemos dentro de nuestra estructura de carpetas de WordPress, debemos seleccionarlas a todas y copiarlas en una carpeta de nuestro ordenador.

Seleccionando todas las carpetas de nuestro WordPress.

Esta copia de archivos puede llevar varios minutos, con lo cual simplemente esperamos a que termine el proceso.

En este artículo explico la migración en sí, asumo que tienes instalado en tu ordenador un entorno de desarrollo local como MAMP o WAMP y que sabes en qué ubicación guardar las carpetas de tus sitios de desarrollo.

Una vez que se han copiados todos los archivos y directorios a nuestro ordenador, buscamos en la raíz de nuestro sitio el archivo wp-config.php. Éste archivo contiene la información para conectar con nuestra base de datos, tal como el nombre de la base de datos, su usuario y contraseña, y más cosas que veremos adelante.

En este archivo tendremos que reemplazar los datos que contiene, ya que son datos que nuestro hosting nos proporcionó para la creación de la base de datos en WordPress. Tendremos que reemplazarlos con los datos de nuestra base de datos local, la cual habremos creado con phpMyAdmin u otro programa de preferencia.

Una práctica habitual que hago yo para tener que saltar este paso de reemplazar datos es que, en mi servidor local, creo la base de datos y su usuario y contraseña con los mismos datos que hay en el servidor online, es decir, con los datos que ya vienen en el archivo wp-config.php que nos descargamos.

Ejemplo del contenido del archivo wp-config. Con los datos que vienen ahí, suelo crear mi base de datos local con los mismos datos. De esta forma me evito el tener que reemplazar datos y que sean consistentes online y localmente.

Una vez creada nuestra base de datos con su suario y copiados todos los archivos y carpetas a nuestro directorio local, si accedemos a nuestra web lo que sucederá es que nos pedirá iniciar una instalación nueva de WordPress.

Esto sucede porque nuestra base de datos está vacía, con lo cual tendremos que llenarla con los datos que tenemos en nuestra base de datos online.

Migrando el contenido

Elegimos nuestra base de datos online y le damos a ‘Exportar’.

Dejamos todo como está y le damos a ‘Continuar’. Esto exportará el contenido de nuestra base de datos y la descargará en un archivo .sql

Exportando el contenido de nuestra base de datos.

Una vez exportada nuestra base de datos online, lo próximo es importar su contenido a nuestra base de datos local. Para ellos entramos nuevamente a phpMyAdmin, elegimos nuestra base de datos local (que estará vacía) y le damos a ‘Importar’. Nos pedirá que seleccionemos el archivo que nos descargamos de la exportación y luego, debajo de todo, le damos click a ‘Go’ (o ‘Continuar’).

Importando el contenido a nuestra base de datos.
Aquí phpMyAdmin nos confirma que nuestra importación se ha realizado con éxito.

Actualizando las URL

Antes de realizar esto, tenemos que verificar el table_prefix que nuestra base de datos importada tiene. Esto lo podemos ver en el archivo wp-config.php

Por lo general, el wp siempre está, y el hosting suele agregar un par de letras.

Una vez que verificamos el table_prefix de nuestra base de datos, entramos en phpMyAdmin, vamos a la sección SQL e ingresamos las siguientes declaraciones en la consola:

UPDATE wp_options SET option_value = replace(option_value, 'http://www.nuestrawebonline', 'http://localhost/nuestraweblocal') WHERE option_name = 'home' OR option_name = 'siteurl';UPDATE wp_posts SET guid = replace(guid, 'http://www.nuestrawebonline','http://localhost/nuestraweblocal');UPDATE wp_posts SET post_content = replace(post_content, 'http://www.nuestrawebonline', 'http://localhost/nuestraweblocal');UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.nuestrawebonline','http://localhost/nuestraweblocal');

Prestar atención a lo del table_prefix, que es el wp_ que vemos arriba. Por ejemplo, si tu table_prefix es wpxh_ entonces tendrías que escribir wpxh_posts y así con las demás declaraciones.

Y listo! Nuestro sitio online debería estar replicado localmente. Si accedemos a nuestro localhost/nuestraweblocal deberíamos ver lo mismo que tenemos montado online.

Notas finales

Por ejemplo, hace poco tuve que trabajar con una web que estaba montada como multisitio, tenía mucho contenido extra en el .htaccess y wp-config.php y no me fue posible mediante plugins hacer esta migración, al menos con los plugins gratuitos que hay, los pagos sí permiten esto.

Pero como tenía que solucionar otras cosas que estaban mal realizadas, me incliné por el proceso manual, ya que tuve que modificar datos de base que estaban mal.

Por eso, repito, si puedes hacerlo mediante plugins, hazlo. Hay muchos tutoriales en internet que explican cómo hacerlo. El plugin que suelo utilizar en esos casos es Duplicator, pero hay muchos más.

Aclaración importante

Te recomiendo que si es la primera vez que lo haces, pruebes con un servidor online de pruebas, como poopy.life, que te permite crear una instalación de WordPress en 5 minutos y dejarla funcional para hacer las pruebas correspondientes.

Gracias por leer

UI Developer | alejandronarvaja.com