Image for post
Image for post

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.

WordPress tiene dos partes esenciales en su conjunto. Uno es el contenido: los textos que escribimos, las imágenes que subimos, etc. El otro es la estructura: los plugins que instalamos, los temas que elegimos, etc.

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.

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.

Image for post
Image for post
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.

Image for post
Image for post
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.

Image for post
Image for post
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.

Image for post
Image for post

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.

Lo primero que tendremos que hacer es exportar los datos que contiene nuestra base de datos online. Para ello, en nuestro hosting, accedemos a phpMyAdmin, elegimos nuestra base de datos, y le damos a ‘Exportar’.

Image for post
Image for post
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

Image for post
Image for post
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’).

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

Un último paso que debemos dar, es actualizar las URL en nuestro servidor local. Ya que las URL en nuestro servidor online apuntan al sitio web que está montado, debemos indicarle que ahora busque ese sitio localmente, en nuestra URL que tenemos montada con MAMP o WAMP, algo del estilo: http://localhost/misitioweblocal

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

Image for post
Image for post
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.

En este artículo describo un proceso complicado, como es el manual. Hay maneras mucho más simples de hacer esto mediante plugins, pero hay veces en que dependiendo de la complejidad del sitio montado esto no es posible sin mojarse un poco.

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

Este proceso es delicado y puedes cargarte tu instalación de WordPress, corre bajo tu responsabilidad que tomes las precauciones adecuadas.

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.

Espero te haya gustado el artículo, cualquier cosa que me quieras preguntar puedes hacerlo aquí mismo o encontrarme aquí: alejandronarvaja.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store