Blog

Mudando wordpress de un dominio a otro

No se si a muchos les ha sucedido pero, esta es la primera vez a mi. Pues un cliente me pidió que cambiara su dominio después de haber creado y terminado con todas las configuraciones en otro. Es decir, tenía que hacer una migración.

Y ese no era el problema, el problema era que WordPress guarda las direcciones de forma absoluta, entonces eso me perjudicaba a la hora de mover el sitio de www.misiteantiguo.com a www.minuevositio.com. Ahora vas a ver como puedes mover tu sitio de un lado a otro sin tantas vueltas.

Ante de todo

Recuerda que tienes que tener tu nuevo dominio preparado y con 36 horas de anticipación para que los DNS se propaguen, así te ahorrarás de futuros dolores de cabeza.

1. Backup de tu base de datos

mudar1

Lo primero y más importante, obtener los datos que tienes en tu wordpress, para poder replicarlos. Una vez ingresamos a nuestro hosting, vamos phpMyAdmin (normalmente se encuentra bajo la sección de Bases de Datos, si utilizas Cpanel está bajo DataBases). Una vez estamos en el phpMyAdmin elegimos la base de datos donde está nuestro sitio. Le damos clic a la pestaña de exportar.

mudar2

Una vez en la opciones tenemos que exportarlo como SQL, no se te olvide, luego:

  • Structure (darle clic a las siguientes opciones)
    • Add DROP TABLE/ VIEW/ PROCEDURE/ FUCTION
    • Add AUTO_INCREMENT value
    • Enclose table and field names with backquotes
  • Data( chequear simplemente a este y nada más)

mudar3

Le damos chequeamos Save as file y le damos la compresión que queramos. Ya tenemos nuestra información.

2. Backup de WordPress

Nada del otro mundo, abres tu cliente FTP y bajas todos los archivos de wordpress a una carpeta. Esto servirá para que los subas de nuevo a tu nuevo dominio.

Actualización: Cuando bajes el wordpress, abre el archivo wp-config.php (está ubicado no más abres la carpeta), por si la base de datos a donde migras no tiene el mismo nombre, cambiando lo siguiente a los nuevos valores que has configurado en tu nuevo dominio:

define(‘DB_NAME’, ‘gd2_site’);
/** MySQL database username */
define(‘DB_USER’, ‘gd2_user’);
/** MySQL database password */
define(‘DB_PASSWORD’, ‘xKN2fyn<ltM3’);
define('DB_NAME', 'aqui el nombre de la db');
/** MySQL database username */
define('DB_USER', 'aqui va el user');
/** MySQL database password */
define('DB_PASSWORD', 'aqui va el password');

3. Prepara tu nuevo dominio

Como te dije antes, debes de ya tener tu nuevo domino configurado con su hosting con 36 horas de anticipación, si no lo has hecho, ve, tómate un café o durme un poco y regresa cuando se haya cumplido ese tiempo.

Tienes que crear tu base de datos en tu servidor. Una vez la tienes funcionando vas a subir los archivos al FTP (los que bajaste en el paso 2) a tu nueva dirección. Tendremos que esperar un poco.

4. Importar archivos

mudar4

Una vez se subieron todos los archivos de tu WordPress, vas a importar todos los datos de los cuales hiciste backup en el paso 1. Para ellos ingresamos otra vez a phpMyAdmin (por supuesto en nuestro nuevo dominio verdad), elegimos la base de datos que ya creamos (la del paso 3) y en las pestañas hay una que dice Importar.

Seleccionas el archivo y listo, le damos seguir. Ahora ya casi estas, solo falta un detalle, el que comente al principio. Para que WordPress sea completamente independiente debes cambiar algunos parámetros en la base, ya que WordPress guardar las direcciones (como páginas y links internos) de forma absoluta, lo que se dificulta, pero esto es solucionado en 3 pequeños pasos más.

5. La magia

Si te das cuenta, en las opciones donde importaste y exportaste hay una solapa con SQL, elegis esa.

Y ahora colocas este código:

UPDATE wp_options SET option_value = 
replace(option_value, 'http://www.mi-viejo-dominio.com', 'http://www.mi-nuevo dominio.com') 
WHERE option_name = 'home' OR option_name = 'siteurl';

Lo que hacemos aquí es remplazar el url del sitio donde estaba alojado al nuevo.

Ahora:

UPDATE wp_posts SET guid = replace(guid, 'http://www.mi-viejo-dominio.com', 'http://www.mi-nuevo dominio.com');

Con este querie vamos a reemplezar todos los url’s en los posts y las páginas, de manera que se vuelvan a tu nuevo dominio y por último:

UPDATE wp_posts SET post_content = 
replace(post_content, 'http://www.mi-viejo-dominio.com', 'http://www.mi-nuevo dominio.com');

Por último remplazamos todos los links que tenga el contenido, para no tener errores 404. ¿Fácil no?

¡UPDATE! (14 dic 10′)

Agrega este código para cambiar las url (si existen) de los custom fields.

UPDATE wp_postmeta SET meta_value = 
replace(meta_value, 'http://www.mi-viejo-dominio.com', 'http://www.mi-nuevo-dominio.com')

Ahora puedes utilizar mi generador de script para migración para facilitarte un poco la vida…

6. Ahora sí, lo último

Ingresa al administrador y cambia el nombre del sitio o los correos configurados, date cuenta de que los plugins funcionen a la perfección.

Espero que te sea de utilidad, ya que pase unas cuantas horitas viendo información sencilla y en español, pero no, la encontre mezclando varios sitio y en inglés; y no tengo problema con ello, pero es mucho más fácil de comprender las cosas en el idioma materno (o paterno). ¡Éxitos y pilas!