Aprende a migrar tu WordPress de servidor remoto a local, paso a paso

Tienes una web súper chula que funciona con WordPress, ¿verdad? Ya recibe bastantes visitas pero tú quieres tener más tráfico. Deseas cambiar algunas cosas. Tal vez pensaste en crear un tema hijo (child theme) o quizás es el momento de actualizar la hoja de estilos CSS.

Pero tienes miedo… No quieres modificar tu web directamente en producción.

—¿Y si se estropea algo y la tumbo? —te preguntas.
—¿No será demasiado cutre? —piensas.

Pero tienes miedo… No quieres modificar tu web directamente en producción

Algo te dice que no es bueno cambiar tu WP directamente en producción. ¡Felicidades! Ni se te ocurra hacerlo.

Hagamos las cosas bien. Primero de todo tienes que descargarte tu WordPress y ponerlo en marcha en local. Entonces, te pones a cambiar tu web como desees, de forma completamente segura en tu ordenador local. Y finalmente, cuando estás satisfecho con los cambios realizados, subes a producción los archivos que has modificado. Esto es lo más seguro.

He puesto un montón de vídeos con los pasos necesarios para lograr nuestro objetivo, no te los pierdas y compártelos con tus amigos y amigas.

Para los que tenéis wordpress.org

Evidentemente, el esquema que planteo en este artículo es válido solo para los que trabajáis con wordpress.org.

Por si no lo sabes, uno puede trabajar con WordPress de dos formas diferentes que se llaman así: wordpress.com y wordpress.org. La primera es un servicio gratuito, muy fácil de usar, pero limitado, con el que tu blog queda alojado en los servidores de WordPress. La segunda consiste en bajarte el CMS a tu ordenador, tunearlo cómo tú quieras, y subirlo al host de tu elección.

En este post expliqué algunas diferencias técnicas entre wordpress.com y wordpress.org, échale un vistazo para aprender más cosas de WordPress.

WP alojado en VPS o servidor dedicado GNU/Linux

La explicación de hoy es para los que tenéis un blog desarrollado con wordpress.org, y, además, se encuentra en un servidor remoto virtual VPS o en un servidor dedicado. Concretamente, suponemos que el sistema operativo del servidor es una distro GNU/Linux basada en Debian, por ejemplo Ubuntu. ¿Queda claro?

¿Queda claro?

Mi entorno de desarrollo local

Comparto los pasos que sigo yo mismo para trabajar en local con mi blog programarivm.com, alojado en un Ubuntu 14.04 LTS (Trusty Tahr) de Amazon EC2. Mi máquina de desarrollo local tiene lo siguiente:

  • Sistema operativo Windows 10
  • Consola Cygwin para conectarme a mi servidor Amazon EC2 vía SSH
  • En local tengo instalado WampServer 3

¿Por qué Windows y no Debian?

Ok, lo más cómodo sería trabajar en un entorno local que también fuera GNU/Linux, ¿cierto?, por ejemplo Debian, Ubuntu, Trisquel, gNewSense, o cualquier otra distro GNU/Linux. Si te soy sincero, personalmente lo preferiría. Sin embargo a día de hoy por cuestiones de trabajo también utilizo Windows 10 porque mis clientes suelen utilizarlo y al final me he acostumbrado a usar Windows.

Windows 10

Además, si eres un usuario medio por así decir, posiblemente te resulte más sencillo utilizar pilas de software para Windows del tipo WampServer, XAMPP, EasyPHP o Winginx. Las personas que no son expertas en GNU/Linux no suelen complicarse la vida configurando servidores web y bases de datos.

Total, que al final muchas veces te encuentras con que los blogs WordPress están alojados en máquinas GNU/Linux pero muchos diseñadores web y programadores terminan trabajando con ordenadores Windows o Mac en local. Por todo esto he pensado en explicar esta puesta en marcha local en ordenadores Windows.

Debian

¿Preparados y preparadas? ¡Allá van los pasos que tienes que seguir para migrar tu WordPress de remoto a local!

1. Comprime tu WordPress de producción

Como veis en el siguiente vídeo, para conectarme a mi servidor vía SSH yo utilizo Cygwin, que es un simulador de sistemas Unix en Windows. Como alternativa puedes utilizar Putty.

La consola de Ubuntu estará muy pronto disponible en la próxima gran actualización de Windows 10 de 2016 llamada Redstone. Ahora mismo la consola Bash de Ubuntu está en fase beta y solo pueden utilizarla los Windows Insiders con el riesgo que ello comporta.

¡Bien hecho!

Para conectarme al servidor remoto ejecuto:

El comando estrella de este primer paso es el siguiente:

2. Descomprime el zip y ponlo en tu WAMP

Ahora nos descargamos el zip de forma segura mediante SFTP con FileZilla:

Descomprimimos el zip:

Y lo ponemos en el document root de nuestro WAMP:

3. Volcamos la BBDD de producción y la comprimimos

Como ves, me vuelvo a conectar a mi server de Amazon EC2 y vuelco mi base de datos WordPress en un script sql:

El comando estrella es:

Justo a continuación comprimo el archivo:

4. Nos bajamos la BBDD y la instalamos en local

Bajarse la base de datos WP es tan sencillo como muestra este vídeo:

Luego la instalamos así:

Fíjate que primero de todo, antes de importar la BBDD, hemos ejecutado el siguiente comando SQL para crear la base de datos.

5. Actualizamos el archivo wp-config.php

Básicamente hay que actualizar estas constantes:

Por otro lado, como vamos a trabajar en modo en modo desarrollo, establecemos las variables WP_DEBUG y WP_DEBUG_DISPLAY a true. Así el navegador imprimirá los errores PHP y si algo no va bien podremos saber rápidamente qué sucede:

Clica aquí para saber más sobre WP_DEBUG, ¡y mira este vídeo!

6. Actualizamos las URLs

El cambio del URL se puede hacer de varias maneras. Una opción es editar el archivo wp-config.php y añadir estas líneas:

O también podemos actualizar los valores correspondientes directamente en la base de datos:

En el siguiente vídeo verás que yo me decanto por la segunda opción:

Clica aquí para aprender más sobre el cambio de las URLs.

7. Crear una entrada en el archivo hosts y un nuevo host virtual Apache

Nosotros queremos trabajar cómodamente en local. Nos interesa poder escribir el URL http://programarivm.local en la barra de direcciones de nuestro navegador web favorito y que WordPress responda.

Pues bien, para ello hay que hacer dos cosas:

  1. Tenemos que crear una entrada en C:\Windows\System32\drivers\etc\hosts
  2. Crear un nuevo host virtual de Apache en C:\wamp\bin\apache\apache2.4.17\conf\extra\httpd-vhosts.conf

Tus archivos tienen que quedar como explica este vídeo:

¡Felicidades!, ya lo tienes

¿Sabes una cosa? Posiblemente seguirás todos los pasos que indico yo en este post pero tu WordPress local no funcionará a la primera. ¡Te toca analizar tu instalación particular y hacer la puesta a punto correspondiene!

¡Felicidades!, ya lo tienes

Tómalo con filosofía, ¿qué esperabas? Esto es normal en el mundo del desarrollo de aplicaciones porque nunca existen dos entornos iguales.

Por ejemplo, te cuento que yo tengo instalados los plugins W3 Total Cache e iThemes Security, y para que mi WordPress funcione he tenido que hacer un par de modificaciones.

WordPress me lanzaba este error:

Fatal error: Class 'Memcache' not found in C:\wamp\www\programarivm\wp-content\plugins\w3-total-cache\lib\W3\Cache\Memcached.php on line 38

Este problema en particular está documentado en este hilo, así que he borrado los archivos:

  • /wp-content/w3tc-config/master.php
  • /wp-content/cache/config/master.php

Con respecto al plugin iThemes Security, en producción yo tengo activada la opción que esconde el wp-admin (Hide Backend). Esta característica impide que los bots maliciosos automatizados puedan acceder al panel de administración por fuerza bruta. Puedes poner el URL de acceso que tú quieras; por ejemplo, en vez de https://ejemplo.com/wp-admin puedes poner https://ejemplo.com/foobar-1234abc.

Simplemente yo no podía administrar mi recién instalado WP en local porque se producía la redirección establecida en el Hide Backend de iThemes. Los que tenemos activada esta opción solo tenemos que eliminar la fila itsec_hide_backend de la tabla wp_options.

Así pues, con estos ajustes yo ya pude acceder a mi panel WP en Windows 10, tecleando el URL http://programarivm.local/wp-admin en la barra de direcciones de mi navegador web favorito.

Allá va un vídeo que reúne todos los pasos necesarios para poner en marcha tu WordPress en local, son exactamente los mismos vídeos de arriba, pero puestos todos juntos esta vez y con comentarios.

¡Esto es todo por hoy! Gracias por haber leído este post. Espero haberte ayudado a instalar WordPress en tu máquina de desarrollo, y comparte este post con tus amig@s, recordad que cambiar cosas importantes directamente en producción es arriesgado.