Migración de un sitio web WordPress (de producción) a local

Al comenzar a desarrollar sitios web es conveniente tener un sitio únicamente para trabajo, es decir, un ambiente local en el cual probar las nuevas características sin afectar el sitio original. 

Para llevar a cabo la transferencia de nuestro sitio WordPress a un ambiente local vamos a necesitar:

  • Servidor LAMP/WAMP/XAMPP Local
  • Acceso a Cpanel o tener un backup completo del sitio (archivos/basededatos).

Esta guía se va a dividir en los siguientes pasos:

  1. Backup de los archivos del sitio
  2. Exportación de la base de datos
  3. Creación de la base de datos en local
  4. Importación de la base de datos a local
  5. Edición de variables de Mysql
  6. Edición del archivo wp-config.php 
  7. Configuración del archivo .htaccess
  1. Backup de los archivos del sitio

Para realizar el respaldo de los archivos del sitio, en el CPanel debemos dirigirnos a la sección de Administrador de archivos, ahí debemos seleccionar y comprimir los archivos de nuestro sitio.

Selección de archivos de nuestro sitio en CPanel.
Compresión en .zip de archivos de nuestro sitio.

El archivo .zip generado se debe extraer en una carpeta que hayamos creado para nuestro sitio local en htdocs del servidor LAMP/WAMP/XAMPP.

Extracción en htdocs del servidor local.

2. Exportación de la base de datos

Para la exportación de nuestra base de datos también debemos tener acceso al CPanel, pero en esta ocasión, nos dirigimos a la sección de phpMyAdmin.

Ahí debemos localizar la base de datos que corresponda a nuestro sitio. Pero, ¿cómo podemos saber cuál es la  base de datos de nuestro sitio? 

En los archivos de nuestro sitio debemos acceder al archivo wp-config.php y ahí encontraremos cómo se identifica nuestra base de datos en:

Identificación de la base de datos de nuestro sitio en el archivo wp-config.php
/** The name of the database for WordPress */
define( 'DB_NAME', 'bbbbcom_wp997' );

Una vez que sabemos cómo se llama la base de datos de nuestro sitio dentro de phpMyAdmin podemos localizarla y exportarla.

Al seleccionar Exportar elegiremos el método de exportación rápido.

Exportación de base de datos.

3. Creación de la base de datos en local

Ya con el respaldo tanto de nuestros archivos como de nuestra base de datos debemos dirigirnos a nuestro servidor local y crear la base de datos en la cual se alojará lo previamente descargado.

Así que en phpMyAdmin pero de local (ya NO el de tu Cpanel) debes crear una nueva database. Te sugiero que la nombres con algo que te remita al sitio original para que siempre sepas cuál es y no haya confusiones.

Creación de base de datos en local.

4. Importación de la base de datos a local

Para la importación de la base de datos de nuestro sitio a local es recomendable descargar e instalar MySQL Workbench (https://dev.mysql.com/downloads/workbench/).

Una vez instalado MySQL Workbench, este localiza automáticamente tu servidor local.

Dentro de la pestaña SHEMAS encontrarás la base de datos que creaste en local. Dando click derecho debes configurar esa base como Set as Default Schema.

Después, en File deberás correr Run SQL Script…

Seleccionar nuevamente el nombre de tu base como Default Schema.

Y seleccionar la base de datos que descargaste.

Importación de base de datos descargada previamente.

5. Edición de variables de Mysql

Con tu base de datos ya en tu servidor local en la tabla wp_options debes modificar las variables siteurl y home cambiando de https a http y del dominio de tu sitio a localhost/NombreEnLocal.

siteurl -> http://localhost/xxxx
home -> http://localhost/xxxx
Edición de siteurl y home en base de datos local.

6. Edición del archivo wp-config.php

Posteriormente, en un editor de código debes editar el archivo wp-config.php con los datos de la base de datos local.

  • En /*The name of the data base for WordPress*/ debes cambiar el nombre de la base del sitio por el nombre de la base que creaste en local. 

Ej.

define( 'DB_NAME', 'xxxxxx_wp997' );    a    define( 'DB_NAME', 'demoxxxx' );
  • En /* MySQL database username*/ cambiar el username por ‘root’. 

Ej.

define( 'DB_USER', 'root' );
  • En /* MySQL database password */ cambiar la contraseña. En caso de que hayas creado una contraseña para tu servidor local debes poner esa contraseña. Si tu servidor local no tiene contraseña únicamente debes dejar un espacio entre las comillas sencillas.

Ej.

define( 'DB_PASSWORD', '8%63RGUG' ); [con contraseña]

o

define ('DB_PASSWORD', ' ' ); [sin contraseña]
 
  • En /* MySQL hostname*/ cambiar el hostname a ‘localhost’.

Ej.

define( 'DB_HOST', 'localhost' );
Edición del archivo wp-config.php para trabajar en local.

7. Configuración del archivo .htaccess

De igual manera en un editor de código deberás modificar las siguientes líneas del archivo .htaccess.

De RewriteBase /          a           RewriteBase /demoxxxx
Y de RewriteRule . /index.php [L]    a       RewriteRule . /demoxxxx/index.php [L]

También debes quitar toda la información que se encuentre debajo de # END WordPress.

Edición del archivo .htaccess para trabajar en local.

Con estos pasos podrás comenzar a trabajar de manera local tu sitio web para posteriormente modificar tu sitio sin riesgo alguno.

Es importante mencionar que cada vez que quieras hacer modificaciones deberás realizar esta serie de pasos para mantener actualizado tu ambiente de trabajo local.