Para migrar nuestro sitio desde nuestro servidor de explotación a al servidor final o de desarrollo, o simplemente para hacer una copia de seguridad o un Backup completo y funcional del sitio, estos son los pasos a seguir:

1 – Copiar el código fuente de WordPress

Se trata de copiar todos los ficheros de la instalación de la instancia de wordpress remota via FTP y copiarlos en una carpeta en la instalación origen. Puedes poner el sufijo -remoto a la carpeta para saber que corresponde a la instalación remota.

2 – Exportar/Importar la base de datos de WordPress

Para esto utilizaremos phpMyAdmin, que está disponible tanto en la instancia remota como en la local.

Generaremos un fichero de export (.sql) de la base de datos de remotae importaremos este fichero en la base de datos local (previamente debe haber sido creada):

  • Abrimos el phpMyAdmin remoto. Obviamente debemos conocer nuestro usuario de base de datos y su password para la instancia de origen.
  • Seleccionamos la base de datos y realizamos un export completo seleccionando en formato de compresión .zip. Esto me descarga (en el directorio habitual de descargas o donde hayamos indicado) un fichero con extensión .sql.zip
  • Renombramos el fichero añadiéndole la fecha en que hacemos el export al nombre como prefijo, por ejemplo 20150215-<nombreoriginal>.sql.zip
  • Cerramos el phpMyAdmin de la base de datos remota, para no liarnos.
  • Abrimos el phpMyAdmin de la base de datos local. Debemos conocer también el nombre de usuario y el password de la base de datos local.
  • Seleccionamos la base de datos local. Si tuviera tablas, como lo que quiero hacer es clonarlo todo, selecciono todas las tablas que pertenecen a wordpress (wp_xxxxxx) y las elimino (Cuidado con este paso asegurarse que estamos en la instancia correcta de la base de datos y que podemos borrarlo, tener también en cuenta el prefijo de las tablas que tiene nuestra instalación).
  • Realizo el import seleccionando el fichero .sql que habíamos exportado previamente.

3 – Modificar el fichero wp-config.php

En la carpeta donde hemos copiado los ficheros de la instalación  remota (la que hemos llamado wordpress-remoto), hay un fichero llamado wp-config.php que deberemos editar para que podamos acceder correctamente a la base de datos local,  la que acabamos de crear via importación.

Con un editor de textos modificamos los campos marcados en negrita, se trata del nombre de la base de datos del destino, el usuario de base de datos de destino y su password.

// ** Ajustes de MySQL. Solicita estos datos a tu proveedor de alojamiento web. 
/** El nombre de tu base de datos de WordPress */ 
define('DB_NAME', 'xxxxxxxxx'); 
/** Tu nombre de usuario de MySQL */ 
define('DB_USER', 'xxxxxxxxx'); 
/** Tu contraseña de MySQL */ 
define('DB_PASSWORD', 'xxxxxxxxx');

Obviamente sustituir xxxxxx por lo que corresponda.

4 – Extraer la utilidad de modificación de URLs.

Esta utilidad proporcionada por Inteconect-It (Utilidad e Instrucciones) nos permitirá realizar un cambio completo de las URLs que utilizamos en nuestro sitio local. IMPORTANTE: Es crítico colocar correctamente las urls tanto del origen como del destino sin dejarnos nada (http, : // ) es decir tal como están actualmente.

InfoNota : podéis mirar en la base de datos (vía phpMyAdmin) cuál es exactamente la URL que hay que cambiar, en la tabla wp_options. En el primer registro viene cuál es la url origen.

Por ejemplo, nuestro dominio local puede ser:

jornadassarteco.org/mypress   (url origen)

y debemos cambiarlo por

http://www.midominio.com   (url destino)

La descarga contiene la utilidad que hay que ejecutar, en una subcarpeta llamada secret-name-please

Extraer esa carpeta en el raiz de nuestro directorio wordpress-remoto y llamarla como queramos, por ejemplo searchandreplace o dejar el nombre por defecto

Este script también cambia todos los enlaces que wordpress ha serializado (almacenar como un número una cadena de texto para su almacenamiento en la base de datos).

5 – Ejecutar la utilidad de modificación de URLs

Para poder ejecutar esta utilidad:

Para ejecutar el script ponemos en el navegador la URL de destino seguida de /<directoriosecreto>, según el ejemplo que estamos poniendo:

http://www.midominio.com/searchandreplace

Esto lanza la ejecución del script que lee nuestro fichero wp-config.php (el que habíamos modificado) y por tanto ya tiene los datos de conexión a la base de datos. Nos pide las URLs antigua y la nueva completamos tal como aparecen arriba (url origen/destino), las introducimos y el resto de los pasos simplemente es darle continuar.

InfoPodemos ejecutar el script para probar sin modificar realmente los datos en la base de datos o podemos ejecutarlo «de verdad».

6 – Acceder a la copia local con el navegador

Quitamos de la url del navegador la parte final /<directoriosecreto>….. y deberá aparecer nuestro sitio completamente migrado.

InfoRevisar los enlaces, en la parte inferior izquierda del navegador aparece el enlace cuando situamos el cursor encima de un link.

7 – Reconstruir los enlaces permanentes

Este paso no es necesario si se están usando los enlaces permanentes por defecto.

Lo normal no es eso sino utilizar el nombre del post o algún tipo de enlace permanente mejor adaptado a SEO.

Si no utilizamos los enlaces permanentes por defecto entonces sí es importante este paso.

Simplemente tendremos que entrar al escritorio de nuestro nuevo sitio remoto, ir a Ajustes y volver a generar los enlaces permanentes. Estos se reconstruyen cada vez que se actualiza.

 8- Eliminar el script de reemplazos

Este último paso es una precaución una vez que sabemos que todo está correcto.

Si dejamos la utilidad  /<directoriosecreto> en la raiz de mi sitio remoto corremos el peligro de que cualquiera pueda ejecutarlo y:

  • Cambiar todas las Urls de mi base de datos para que apunten a donde el quiera
  • Obtener el usuario y password de acceso  a nuestra base de datos y más datos del servidor

Por tanto BORRAR LA UTILIDAD /<directoriosecreto> del sitio remoto