Uno de los retos que nos ofrece un proyecto es a la hora de migrar un WordPress de un servidor local a remoto. En este artículo os indicaré, paso a paso, la forma de pasar de un servidor local (en mi caso un WAMP) a un servidor remoto, como puede ser 1and1.
1. Preparando los archivos locales para migrar un WordPress
Lo primero que haremos será ubicar los archivos físicos del proyecto. En caso de WAMP, los tenemos en c:/wamp/www/miproyecto. Todos los archivos se subirán al servidor, a excepción del archivo wp-config.php. Este archivo permite vincular nuestro proyecto a la base de datos. Pero al subirlo mantendrá la conexión con nuestro local y eso no nos interesa. Se podría modificar este archivo, pero a mi parecer es más sencillo configurarlo después. Lo veremos en los siguientes pasos.
2. Preparar las bases de datos
Para este paso necesitamos acceder a un gestor de base de datos. Todos los paquetes de servidores locales suelen tener preinstalado uno, llamado phpMyAdmin. En el caso de WAMP, la ruta por defecto es http://localhost/phpmyadmin/. Accedemos a esta dirección y seleccionamos nuestra BBDD.
Una vez seleccionada nuestra base de datos, vamos al menú superior derecho «Exportar». Y pulsamos en el botón Continuar, con todas las opciones por defecto. Esto nos genera un archivo de texto en format SQL, que es el lenguaje utilizado para almacenar y gestionar información en bases de datos.
3. Adaptar bases de datos al nuevo servidor
Las bases de datos de WordPress contienen rutas absolutas. Esto significa que al crear una página, entrada o subir una imagen, guarda la ruta completa. Por ejemplo, http://localhost/miproyecto/mi-pagina/. Para migrar un WordPress será necesario hacer este paso.
Si subiéramos directamente este archivo SQL al servidor remoto, la Web no funcionaría. Porque localhost no es un dominio público, sino que solo funciona en local. Para ello tenemos que modificar esas rutas con las del servidor remoto.
Lo primero que haremos será abrir ese archivo de base de datos SQL que acabamos de descargarnos de phpMyAdmin. Lo podemos abrir con cualquier editor de texto o de código Web. Yo uso DreamWeaver o Sublime Text, por ejemplo. Una vez abierto, vamos a Edición -> Buscar y reemplazar. Esta opción está en cualquier editor de texto. La idea es cambiar la ruta absoluta de nuestro local por la ruta absoluta del remoto. Por ejemplo:
Es importante que al final de las direcciones no pongáis la barra «/». Sino sólo cambiaría algunas de las URLs y no funcionaría adecuadamente. Reemplazaríamos todos y guardaríamos el archivo.
4. Subir las bases de datos al nuevo servidor
Como os he comentado antes, yo usaré 1and1 como servidor remoto. Pero en la mayoría de proveedores de alojamiento Web funcionarán de forma similar. Lo primero que haremos será crear una nueva base de datos. Para crearla, vamos al apartado de Hosting -> Bases de datos MySQL, y ahí creamos una nueva, indicando un nombre y una contraseña.
Es importante indicar una contraseña segura. Os recomiendo que sea con más de 12 caracteres, incluyendo caracteres especiales. Cuanto más compleja sea, más difícil será que nos puedan abrir una brecha de seguridad por ahí. Una vez le demos al botón de configurar y se cree correctamente la base de datos, nos dará la información que necesitamos:
Con esta información podremos volver a vincular los archivos de la Web con la base de datos. Pero por ahora nos los guardamos. Tarda unos 5 minutos en configurarse. Y acto seguido podremos acceder a su consola de phpMyAdmin. Para ello, volvemos al menú Hosting -> Base de datos, y en el listado veremos que ya hay nuestra nueva base de datos, con el botón de phpMyAdmin al lado. Pulsamos en ese botón y se abrirá en una nueva ventana el administrador.
Lo primero de todo hay que seleccionar la base de datos (1), desde el menú de la izquierda y después pulsar el botón del menú superior «Importar» (2).
Se abrirá la página con la información de importación. En principio, todas las opciones ya son correctas, y no haría falta cambiarlas. Solo tendremos que seleccionar el archivo SQL de nuestro ordenador (1), y a continuación pulsar el botón «Continuar» (2). Hay que tener en cuenta el límite de tamaño del archivo SQL. En el caso de 1and1, me indica que tengo un espacio máximo de 50Mb. Si superase ese tamaño, podría comprimirlo en un ZIP y subirlo sin problemas con las indicaciones que da esta misma página.
Si todo ha ido bien, nos saldrá un mensaje en verde mientras nuestra base de datos se ha cargado correctamente.
5. Subir archivos por FTP
Todos los archivos de nuestro proyecto se encuentran dentro de la carpeta de WAMP. Por defecto, estará en C:/wamp/www/miproyecto, o en su defecto donde tengáis instalado WAMP. Ahora lo que tenemos que hacer es copiar todo el contenido de esta carpeta al servidor remoto.
Primero de todo configuraremos en 1and1 un acceso FTP.
El FTP, para los que no lo sepáis, es un protocolo de transferencia de archivos. Permite mover archivos entre dos ordenadores conectados a internet. En este caso, será entre nuestro ordenador y el servidor remoto. Así podremos migrar un WordPress subiendo los archivos de nuestro WAMP al servidor remoto.
Para crear un FTP, solo hay que ir a Hosting -> Acceso FTP seguro. Entonces, pulsaremos el botón de «Nuevo usuario» (1). En esta misma pantalla, tendremos los datos de configuración del FTP para podernos conectar, señalado con el recuadro en rojo.
Los datos que nos pedirá para crear un nuevo usuario de FTP son:
- Un nombre, que viene seguido del nombre del hosting, por defecto.
- La contraseña, que otra vez os recomiendo que sea muy compleja, con más de 12 caracteres y con caracteres especiales.
- La descripción, que solo es informativa para nosotros.
- El directorio, donde subiremos todos los archivos. Este último es importante, ya que si no subimos los archivos a la carpeta que toca, no se verá la Web. Dependiendo del proveedor de alojamiento, os dirán que subáis los archivos de la Web a la raíz del FTP (que aparece identificado por una barra «/»), o dentro de un directorio. En el caso de WAMP, el directorio se llama www. En algunos hostings puede ser httpdocs. En nuestro caso, será el directorio raíz «/».
Pulsamos el botón de Guardar y listo. Ahora tendremos que esperar 5 minutos mientras se configura. Mientras tanto, podemos ir preparando nuestro gestor de archivos FTP.
El gestor de archivos FTP es un programa que nos permitirá conectarnos al servidor remoto. Yo siempre uso FileZilla, que funciona muy bien y es gratis. Si no lo tenéis, podéis descargarlo en este enlace. La versión que necesitáis es la que pone Cliente.
Abrimos el programa y accedemos al menú Archivo -> Gestor de sitios.
Desde el gestor de sitios podremos crear nuevas conexiones. Primero tenemos que crear una nueva conexión, en el botón de Nuevo Sitio. A continuación, a la derecha, rellenar todos los campos:
- El servidor normalmente será el nombre de nuestro dominio. Por ejemplo, ftp.miproyecto.com.
- El puerto no es necesario, ya que usamos el que hay por defecto.
- El Protocolo, normalmente es FTP. En el caso de 1and1 tendremos que indicar SFTP, que es un FTP con mayor seguridad debido a que los datos se mandan cifrados al servidor.
- En Modo de acceso pondremos «Normal» y el usuario y contraseña que hemos creado.
Con estos datos rellenados, pulsamos el botón Conectar. Si todo ha ido bien nos conectaremos al servidor. A la izquierda del FileZilla veremos nuestros archivos locales. Y a la derecha los archivos del servidor remoto. Ahora tenemos que copiar todos los archivos de la carpeta del proyecto. Para hacerlo, solo tenemos que arrastrarlos de la izquierda a la derecha. El proceso puede llevar entre minutos y horas, dependiendo de la complejidad y peso de vuestro proyecto y de vuestra conexión a Internet. Una vez termine, podremos continuar con la migración. Recordad que el archivo wp-config.php no debéis subirlo. Si lo habéis hecho no hay problema, seleccionadlo en la columna de la derecha (servidor remoto) y lo borráis.
6. Configurando WordPress en el servidor remoto
Una vez ya hemos subido todos los archivos al FTP e importado las bases de datos al servidor remoto, solo nos queda la última fase, la configuración de WordPress.
Lo primero que tenemos que hacer es acceder, mediante un navegador, a nuestra Web online. Por ejemplo, http://www.miproyecto.com. Cuando accedamos pueden pasar dos cosas:
- Que aparezca el mensaje «Error conectando al servidor de base de datos». Significa que hemos subido el archivo wp-config.php al servidor remoto. Tendríamos que conectarnos al FTP y borrarlo. Esto pasa porque el nuevo servidor intenta conectarse a nuestro servidor de base de datos local y no puede. Hay que acordarnos que al migrar un WordPress no hay que copiar ese archivo.
- Que aparezca el instalador de WordPress, lo que significa que vamos por buen camino. Solo tenemos que completar el instalador con los nuevos accesos y contraseñas que nos dio el hosting al crear la base de datos.
Rellenando los datos de la nueva base de datos, WordPress nos dirá que todo es correcto y que ha detectado una instalación previa. Eso significa que reconoce todos los datos de la base de datos. Finalizamos la instalación y ya podemos acceder al sitio.
7. Últimos pasos a tener en cuenta
Cuando terminamos de migrar un WordPress suelen faltar elementos dentro del panel de control. Es importante realizar las siguientes acciones nada más terminar la migración:
- Actualizar los Enlaces Permanentes. Por defecto, es posible que FileZilla no nos detectara el archivo de configuración de las URLs amigables. El archivo se llama .htaccess, y por defecto está oculto. Pero podemos volver a crearlo si vamos al menú Ajustes -> Enlaces Permanentes, seleccionamos la opción que queramos y guardamos.
- Revisar los widgets. En muchas plantillas, cuando cambiamos de servidor se pierden los widgets. Tendríamos que volver a revisar que todos estén en su sitio, desde el menú Apariencia -> Widgets.
- Activar el SEO. Normalmente cuando instalamos un nuevo WordPress, uno de los pasos es seleccionar una casilla que pone «Disuadir a los motores de búsqueda de indexar este sitio». Esto significa que WordPress le dirá a Google que no indexe la Web. Ahora que ya tenemos la Web en nuestro servidor remoto, podemos reactivar el SEO. Solo hay que ir al apartado Ajustes -> Lectura, y desactivar esta casilla.
8. Conclusiones
Siguiendo todos estos pasos hemos conseguido migrar un WordPress desde nuestro servidor WAMP a un servidor remoto. Aunque parezcan muchos pasos, es un proceso muy mecánico. Si lo repetís varias veces, ya lo sabréis hacer de memoria.
Puede que si usáis algún otra empresa de hosting las opciones estén en otro sitio, pero al final es siempre lo mismo: subir la copia de base de datos y los archivos por FTP. Si no tenéis claro alguno de estos pasos, os recomiendo contactar con vuestra empresa de hosting y os dirán como podéis hacerlo.