Migrar un blog WordPress de una Url de desarrollo a una Url de producción

Para entender un poco la situación debemos entender que tenemos al usar wordpress:

1) Ficheros php que encontramos en la raíz del directorio de desarrollo, los ficheros de https://new.dominio.com
2) Base de datos Mysql del dominio new.dominio.com
3) Fichero de conexión PHP que enlaza los ficheros (punto 1) con la base de datos (punto 2) este fichero se llama wp-config.php y está en la raiz del directorio

Para mover los ficheros a otro lado, cada uno puede hacer lo que quiera, a mi me gusta comprimir los en un tar llevarme el fichero al servidor destino y descomprimirlo. Entramos por SSH en el servidor y escribimos:

tar czvf backup.tar.gz *

Nos llevamos el fichero a la ubicación del nuevo servidor y escribimos

tar xzvf backup.tar.gz

Muy bien…ahora tenemos los ficheros en el nuevo servidor, pero tenemos que cambiarles el propietario, porque los ficheros conservan el usuario:grupo que tenian en el antiguo servidor, para ello escribimos:

chown usuario:grupo * -R

Así cambiamos de forma recursiva los propietarios de los ficheros.

Una vez hecho esto tenemos que migrar la bbdd, esto cada uno lo hace como quiere, la idea es coger la bbdd de desarrollo volcarla en un .sql irse a la base de datos de producción y ejecutar ese fichero. A mi personalmente me gusta Navicat, así que las capturas serán de Navicat

Nos vamos a la base de datos de desarrollo, botón derecho y Dump SQL -> Estructure and Data

DumpSQL

 

 

 

 

 

 

 

 

Esto nos generará un fichero .sql con las instrucciones para regenerar la base de datos.

Ahora nos tenemos que ir a la base de datos de producción a restaurar dicho fichero, para hacer esto no es mas que ejecutar una query.

 

 

 

 

LoadQuery

 

 

 

 

Perfecto, ahora ya tenemos fichero y base de datos en el nuevo servidor, ahora solo nos faltan dos detalles.

Cambiar los datos del fichero wp-config.php para que funcionen con la nueva conexión. Nos metemos por ssh en el nuevo servidor y hacemos un:

 

 

 

vi wp-config.php

wp-config

 

 

 

 

 

 

 

 

Escribimos el usuario/password de la conexión a la base de datos y el nombre de la base de datos en el caso que sea diferente.

Perfecto! somos los mejores, ahora nos vamos a nuestro sitio web y…. funciona, que bonito, que alboroto otro perrito piloto!!!

Solo un detalle, al primer click que hagas te vas al site antiguo 🙁

Dentro de la base de datos guarda información referente a la URL del sitio, con lo que aún está apuntando a https://new.dominio.com en vez de https://www.dominio.com

Para poder corregir esto, tenemos que lanzar una sentencia de SQL para poder corregir esto ¿Que sentencia? pues para esto tenemos una página que nos ayuda mucho:

https://themergency.com/generators/wordpress-site-url-migration-generator/

Aquí veremos que nos pide la URL antigua, la URL nueva y el prefijo que le hemos puesto en la instalación del WordPress.

Normalmente el prefijo suele ser wp_ pero me he encontrado locos que le han puesto como prefijo 8jZsyWKjTn_

Bueno, si tu eres uno de esos locos, pues en el apartado de prefijo deberás escribir eso… la página te generará un código tal que así

/* update all post permalinks */
update 8jZsyWKjTn_posts
set guid = REPLACE(guid, 'https://new.dominio.com', 'https://www.dominio.com')
where guid LIKE '%https://new.dominio.com%';

/* update all post content */
update 8jZsyWKjTn_posts
SET post_content = REPLACE(post_content, 'https://new.dominio.com', 'https://www.dominio.com')
where post_content LIKE '%https://new.dominio.com%';

/* update all post meta */
update 8jZsyWKjTn_postmeta
SET meta_value = REPLACE(meta_value, 'https://new.dominio.com', 'https://www.dominio.com')
where meta_value LIKE '%https://new.dominio.com%';

/* update all options */
update 8jZsyWKjTn_options
set option_value = REPLACE(option_value, 'https://new.dominio.com', 'https://www.dominio.com')
where option_value LIKE '%https://new.dominio.com%';

Donde indica que debe actualizar los contenidos de la base de datos con la nueva URL.

Nos vamos nuevamente al Navicat, desde el apartado de querys creamos una nueva y enganchamos el churro de código que nos ha dado la página.

Hecho esto ya nos funcionará el Blog perfectamente!!!