Cómo migrar un sitio en WordPress

Revisa primero el checklist.

Esta es una guía explicativa de recomendaciones para migrar un sitio en WordPress.

1. Copiar los archivos:

Método SCP:

Usar el comando scp para copiar los archivos.

Ejemplo:

$ scp -P 4083 -r root@200.27.68.54:/srv/www/lighttpd/www.sitio.com/ /var/www/www.sitio.com/

Donde:

  • El puerto de origen -P es 4083
  • El user de origen es root
  • Es recursivo -r
  • El server de origen es 200.27.68.54
  • El directorio origen es /srv/www/lighttpd/www.sitio.com/
  • El directorio destino es /var/www/www.sitio.com/

Método ZIP:

Comprimir el sitio y bajarlo, luego descomprimir en el sitio externo. ¿Por qué en un zip? Porque haces menos requests por cada archivo y es más rápido.

Ejemplo:

$ zip -r archivo.zip www.sitio.com

Donde:

  • El zip es recursivo -r , o sea, comprime todo el directorio con sus archivos y subdirectorios adentro
  • archivo.zip es el nombre del archivo
  • www.sitio.com es el nombre del directorio

BONUS: Mover mediante wget o curl

Si el hosting de origen tiene un sitio visible mediante internet, puedes mover el archivo.zip al sitio disponible y usar wget o curl en el servidor remoto, así:

$ wget http://www.sitio.com/archivo.zip

o

$ curl -O http://www.sitio.com/archivo.zip

Método FTP:

Bajar todo a local y subir todo a local.

Recomendado sólo si no se tiene acceso a ssh, ya que es lento y conduce a errores involuntarios: que no se hayan bajado todos los archivos, que se corrompa algo en la bajada y subida manual, equivocarse de directorios, etcétera.

2. Base de datos

Método WP DB Migrate (recomendado):

Instalar el plugin WP Migrate DB dentro del sitio origen.

Ingresar los campos requeridos:

  • URL destino. Ejemplo: http://www.sitiomigrado.com/
  • PATH destino. Ejemplo: /srv/www/www.sitioantiguo.com/

IMPORTANTE: El PATH es importantísimo, ya que muchos plugins instalan su propio directorio dentro de la base de datos encodeado dentro de la tabla wp-options de la DB de WordPress, por ende, si no se cambia, el sitio puede tener errores tales como:

  • Pérdida de menús,
  • Pérdida de logos, fondos e imágenes configurables
  • Malfunción del sitio: Errores genéricos, plugins que dejen de funcionar, errores para loguearse, etcétera.

Método PHPMyAdmin:

  • Entrar al PHPMyAdmin
  • Exportar base
  • Cambiar rutas a mano (editor de texto, o consulta SQL en local) desde, tanto como las URL como el PATH de instalación
  • Importar en nueva DB

Método mysqldump

  • Entrar al servidor origen mediante ssh
  • Correr mysqldump (WORK IN PROGRESS, no sé el comando)
  • Mover el dump de la base de datos al servidor de destino
  • Importar con la siguiente secuencia de comandos:

      $ mysql -u usuario -p -h hostdebasededatos
    
      use dbdestino;
      WORK IN PROGRESS: Averiguar comandos