martes, 15 de octubre de 2013

¿Cómo copiar un sitio de WordPress de un Hosting a otro?

Hace algún tiempo habíamos explicado cómo generar un ambiente de desarrollo de WordPress en una PC a partir de un sitio productivo en un servicio de Hosting. Hoy vamos a explicar cómo copiar un sitio de web desde un hosting hacia otro. El escenario en que estamos trabajando es cuando utilizamos nuestro servicio de hosting como ambiente de desarrollo de nuestros proyectos y luego queremos copiarlo al ambiente productivo de nuestro cliente.

Son 7 pasos que necesitamos seguir:

  1. Realizar una copia de seguridad de la base de datos
  2. Realizar una copia de seguridad de los archivos
  3. Crear el directorio y restaurar los archivos
  4. Crear la base de datos y restaurar la copia de seguridad
  5. Actualizar los parámetros de credenciales de base de datos
  6. Actualizar los parámetros de la dirección del sitio
  7. Realizar ajustes particulares de nuestra instalación
En este artículo vamos a estar trabajando con el servicio de hosting BlueHost que es uno de los recomendados por WordPress.org.

A continuación el paso a paso:


1. Realizar una copia de seguridad de la base de datos

En el caso de Blue Host, accedemos a:
  • cPanel
  • Backups
  • Partial backups
  • Download a MySQL Database Backup
Luego elegimos la base de datos que queremos y la descargamos. Si no sabemos el nombre de nuestra base de datos, podemos verificarlo en nuestro wp-config.php 



2. Realizar una copia de seguridad de los archivos

Desde el cPanel accedemos al File Manager. Seleccionamos los archivos que queremos copiar y presionamos botón derecho, opción Compress. En mi caso elegí todos los archivos dentro de public_html, exceptuando los sub directorios que contenían sub sitios. Una vez generado el archivo, lo descargamos.



3. Crear el directorio y restaurar los archivos

Trabajaremos directamente sobre "public_html" o dentro de un sub directorio en caso que ya tengamos un sitio en el directorio raíz.

Subimos el archivo generado en el punto 2 y lo extraemos (botón derecho / extract):




4. Crear la base de datos y restaurar la copia de seguridad

Vamos a:
  • cPanel
  • Database tools
  • MySQL® Database Wizard
  • Elegimos el nombre de nuestra nueva base de datos y presionamos "Next step".
  • Luego elegimos el nombre del usuario y contraseña para crear el usuario.
  • Otorgamos a nuestro usuario los privilegios necesarios. En mi caso utilicé todos los privilegios.
Con esto hemos concluido con la creación de la base de datos. El siguiente paso es restaurar la copia de seguridad de nuestra base original en nuestra nueva base.

Para ello abrimos phpMyAdmin, elegimos la opción importar y comenzamos el proceso. Es fundamental verificar que estemos restaurando sobre la base de datos correcta.

Nota: en mi caso, importé directamente el archivo de extensión SQL, en lugar del ZIP, a pesar de que phpMyAdmin lo soporta.



5. Actualizar los parámetros de credenciales de base de datos

Dentro del directorio /public_html editamos en el archivo wp-config.php los siguiente valores:

define('DB_NAME', 'blablabla');
define('DB_USER', 'blablabla');
define('DB_PASSWORD', 'blablabla');



6. Actualizar los parámetros de la dirección del sitio


Dentro de la base de datos, actualizamos la url del sitio:

UPDATE wp_options 
SET option_value = 'http://desa3.dominio.com' 
WHERE option_id =1;

Si queremos verificar previamente el valor, usamos este comando:

SELECT * 
FROM wp_options
WHERE option_id =1

Conviene revisar luego estos parámetros en Ajustes / Generales, en particular la dirección URL del Sitio que no la hemos cambiado con esta acción (sólo cambiamos Dirección de WordPress (URL)).

7. Realizar ajustes particulares de nuestra instalación

Por último, verificamos aquellas configuraciones particulares de nuestra instalación, que pueden incluir:

  • URLs absolutas
  • Configuraciones en .htaccess
  • Plugins
  • Procesos en el cron
  • Etc.
Estos son algunos SCRIPTS de ejemplo que pueden servirnos para revisar y modificar la base de datos:

SELECT * FROM wp_postmeta
WHERE meta_value like '%desa%' 

/* Reemplazo de URL */
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'desa.desa.com', 'www.prod.com.ar')

/* Reemplazo de path interno"
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'usuariodesa', 'usuarioprod')
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'home7', 'home2')

SELECT *
FROM wp_posts
WHERE guid LIKE '%desa%'

UPDATE wp_posts
SET guid = REPLACE(guid, 'desa.desa.com', 'www.prod.com.ar')


Espero les haya resultado útil. Hasta la próxima!

0 comentarios:

Publicar un comentario en la entrada