¿Cómo se migra de hosting una web en WordPress manualmente? A veces es necesario cambiar de servidor la página hecha en WordPress porque se traslada de proveedor, o también porque se desarrolla en un servidor web concreto (incluso local) y la instalación final se debe hacer en otro servidor (del cliente).
En todos estos casos es necesario poder cambiar el hosting o la ruta de la web en WordPress fácilmente y en este artículo incluyo dos maneras gratis de hacerlo (aunque hay más).
Punto de partida y objetivo: partimos de una web hecha en WordPress instalada y funcionando en un servidor (con una plantilla configurado, contenidos metidos, usuarios definidos…) que incluso puede ser en el PC local con un programa como Ampps y queremos pasarla a otro nuevo.
Partimos de una web hecha en WordPress instalada y funcionando en un servidor y queremos pasarla a otro nuevo. En el nuevo hosting el dominio puede (o no) ser el mismo e incluso con este método se podría cambiar de carpeta/directorio la web en WordPress, por ejemplo, si está en www.midireccion1.com podríamos ubicarlo sin problemas en www.midireccion2.com/blog y fácilmente.
Prácticamente todos los proveedores de hosting web (como Raiola, donde está alojado este blog por ejemplo) ofrecen gratuitamente el servicio de migrar de servidor la web en WordPress (y otros CMSs), pero en ocasiones puede que nos interese hacerlo a nosotros, tanto si es porque no proporcionan esta funcionalidad como si tiene coste o por ejemplo desarrollamos una página web en WordPress en el PC local y la queremos instalar en un hosting web real disponible para todos en Internet.
Con este sistema también se puede duplicar una web hecha en WordPress sin apenas esfuerzo, ya que la web instalada queda intacta.
Por tanto, para migrar o duplicar la instalación de WordPress una opción interesante es mediante el plugin gratis Duplicator, que simplifica enormemente el proceso de traslado de los contenidos y bases de datos de una página en WordPress.
Pasos para realizar el cambio servidor o migrar de hosting una web en WordPress, que son en esencia dos: en el primero se empaqueta la web y se prepara para migrarla a otro servidor y, en el segundo, a continuación, se despliega y “desempaqueta” la web en WordPress en el nuevo hosting.
El proceso para migrar o cambiar de servidor un WordPress en un tutorial en vídeo:
En primer lugar, por tanto, hay que instalar en WordPress el plugin (tras iniciar sesión como administrador, obviamente):
y acceder al apartado > Plugins > Añadir nuevo y a continuación, hay que buscar el plugin Duplicator (creado por Snap Creek y totalmente gratis, aunque tiene algunas opciones de pago, pero para el uso que vamos a comentar en este artículo, la versión gratis es más que suficiente):
E instalarlo (“Instalar ahora”), y pasados unos segundos el proceso finaliza.
Acto seguido hay que activarlo (“Activar”) pulsando el botón correspondiente. Ya está instalado.
A continuación, hay que empaquetar y exportar la web para poder migrar de servidor la página de WordPress. En el menú vertical de la izquierda del panel de administración de WordPress hay que hacer clic en el apartado Duplicator.
En la página que aparece, se debe seleccionar la opción “Crear nuevo” (paquete de exportación):
A continuación, aparece una pantalla en la que es posible configurar diferentes ajustes y parámetros, pero con los valores por defecto suele ser suficiente por lo que no hay más que continuar con el asistente de migración dándole al botón “Next”.
Inmediatamente, el sistema se pone a trabajar para analizar el entorno, base de datos, servidor, características, etc. y todo de manera automática.
Si hay algún problema o alguna configuración que no sea la adecuada (sobre todo en la parte de servidor) e impide el proceso, aparece con un aviso en rojo, que hay que solucionar. Normalmente no suele haber nada grave que impida continuar el proceso de migración de la web. En caso de que sí, deberías contactar con el soporte técnico del hosting actual trasladándoles, tal cual, el mensaje que te da para que te lo solucionen o te expliquen cómo hacerlo.
Si hay avisos que impidan continuar, deben ser solucionados y repetir el proceso visto hasta ahora.
Si todo es correcto, se debe simplemente darle al botón “Create” para que comience el proceso de exportación e la web (ficheros, bases de datos y demás incluidos) y así poder hacer la migración.
Cuando finaliza el proceso, informa que el paquete ha sido completado y permite descargar el instalador (un fichero .php llamado installer.php) para cargar la web y/o el archivo con toda la información de la web (base de datos, imágenes, contenidos, plugins,… todo). Es necesario descargar tanto el instalador como este archivo que contiene la web al ordenador local, que dependiendo de la cantidad de contenidos que hay puede tener un tamaño desde decenas de MB a varios GB.
Ya tenemos, por tanto, la web empaquetada y lista para ser desplegada. Estos pasos anteriores podrían haberse ejecutado perfectamente en una web alojada en un programa local como Ampps o Xampp.
Ahora llega el momento de desempaquetar la web e instalarla en el nuevo servidor.
El primer paso en este caso es crear una base de datos en el panel de control del proveedor de alojamiento/hosting nuevo. Suele haber una opción dentro del hosting que sea algo así como “MySQL”, “Base de datos” o equivalente. Se debe crear una nueva base de datos.
A la hora de crear la base de datos se suele pedir: el nombre de la base de datos deseado, el nombre de usuario de la base de datos deseado y la contraseña que se quiere. Conviene que sea robusta como siempre.
Conviene anotar cuidadosamente estos datos, ya que serán necesarios en un momento.
A continuación, hay que subir por FTP/sFTP los ficheros descargados (el instalador y el archivo con la copia de la web) al servidor nuevo de hosting utilizando algún programa como FileZilla para Windows/macOS/Linux o Cyberduck para macOS. Para utilizar el cliente de FTP es necesario contar con un usuario y contraseña de acceso por FTP que también suele estar disponible (o se puede crear uno) en el panel de control del hosting.
Estos ficheros hay que subirlos al servidor nuevo a una carpeta llamada web, www o public_html -depende del servidor de hosting- que ya debe existir en el servidor (o también puede ser, si no aparecen estos nombres, la carpeta que aparece en el panel de la derecha de Filezilla o Cyberduck).
Sube el fichero del instalador y el archivo con la copia de la web al nuevo servidor usando el FTP. Puede tardar incluso unos minutos dependiendo del tamaño de la página web en WordPress que tengas.
Cuando termine el proceso, abre un navegador y en la barra de direcciones teclea la dirección del nuevo dominio www.midireccion2.com por ejemplo, que sería la de nuestro caso, pero terminado en /installer.php, de tal manera que la dirección sea www.midireccion2.com/installer.php.
Si por ejemplo hemos decidido migrar la web no solo a un nuevo dominio sino también a una nueva carpeta /blog, por ejemplo, en el paso anterior habría que crear la carpeta/directorio blog y subir ahí los ficheros de instalador y el archivo con la copia de la web y visitar en el navegador, en este ejemplo, la dirección www.midireccion2.com/blog/installer.php.
Si hemos hecho todo bien, se debería visualizar una pantalla como la siguiente que constituye el paso 1 de 4 para hacer el despliegue o desempaquetado de la web donde informa de si está todo bien o hay algún aviso o error.
Se debe continuar con el asistente tras marcar la casilla «I have read and accept all terms & notices» y a continuación «Next».
En el paso 2 lanzado por Duplicator, se gestiona la base de datos y hay diferentes opciones:
Mediante la opción Test database se puede comprobar que los datos son correctos y que el sistema funciona.
En caso de que algo falle, hay que revisar que los datos de configuración de la base de datos, incluyendo usuario, clave, nombre de la base de datos y nombre del host de la base de datos sean correcto.
Si la prueba de comprobación de la conexión de la base de datos es correcta, es posible continuar el proceso con el siguiente paso del asistente.
A continuación, solicita una confirmación de los datos de la instalación. Se debe confirmar si es todo correcto (no suele ser necesario tener que tocar nada).
En la sección Options también puedes consultar datos de la instalación origen, incluyendo la cuenta de administrador, tablas, etc.
Si todo es correcto, hay que continuar con el asistente al paso 4, donde termina el proceso, informando si ha ido todo bien e indica que por seguridad es recomendable borrar los ficheros de instalación que han sido utilizados por el plugin Duplicator para hacer la migración o cambio de hosting, ya que no son necesarios.
Para que esto ocurra, hay que dejar marcada la casilla (que aparece marcada por defecto): Auto delete Installer files after login (recommended) e iniciar sesión como administrador (para acceder, pulsa en Admin login en la nueva página web hecha en WordPress que acabamos de cambiar de servidor manualmente.
En cuanto entres como usuario administrador en el escritorio del panel de control de WordPress aparecerá un mensaje en verde indicando que la limpieza de los ficheros ha sido realizada (“¡Limpieza de los archivos del instalador realizada!”).
A partir de este punto, la web ya es exactamente igual que la anterior, con la misma plantilla, configuración, plugins instalados, contenidos, etc.
Este método para cambiar de servidor una web en WordPress es más genérico que el anterior, no utiliza ningún plugin de WordPress y podría usarse con otra página hecha, por ejemplo, en Drupal, Prestashop, etc. si bien conlleva el uso de alguna herramienta como el FTP o sFTP, SSH y PHPMyAdmin quizá no tan conocidas por el público no-técnico.
Recordemos que partimos de una web hecha en WordPress instalada y funcionando en un servidor y queremos migrarla a otros hosting, manteniendo el dominio y la ubicación del mismo (es decir, estaba en www.midireccion.com y sigue estando en esa misma URL la web, no pasa a tener una ruta diferente como podría ser www.midireccion.com/blog).
Los pasos son:
Descargar los ficheros por FTP/sFTP del servidor actual al equipo local y subirlos por FTP/sFTP al nuevo servidor.
Otra opción por SSH, conectarse al servidor actual en la carpeta raíz donde se almacenan los ficheros PHP y ejecutar:
tar -czvf christiandve.tar nombre_de_la_carpeta
Así se comprimen todos los ficheros del directorio de la web.
Conectarse por SSH al servidor remoto y desde ahí por FTP, transfiriendo acto seguido los ficheros.
Una vez finalizada la descarga (en mi caso ha tardado poco más de 30 segundos en transferir casi 4 GB), descomprimir el archivo:
tar -xvf christiandve.tar
Si hemos hecho las operaciones como root (no recomendado), puede ser que haya problemas de permisos, para solucionarlo, hay que cambiar el propietario y el grupo del propietario de los ficheros descomprimidos (suponiendo que la carpeta se llame www y el usuario y grupo del usuario que deben tener, admin)
chown -R admin www
public_html]# chgrp -R admin www
El cometido de este punto es descargar la información de la base de datos del servidor actual para incorporarla al nuevo.
Suponiendo que es una base de datos MySQL:
Descargar en el servidor actual la base de datos usando PHPMyAdmin o equivalente en un fichero .sql mediante la opción de “Exportar” y exportar todo.
Crear en el nuevo servidor una base de datos vacía con un determinado nombre de la base de datos, usuario y contraseña usando PHPMyAdmin o equivalente, dependiendo del sistema utilizado en el proveedor de hosting (muchas empresas de hosting dentro del panel de control tienen la opción de crear una nueva base de datos). Anotar el nombre de la base de datos, nombre de usuario, clave y dirección del servidor de la base de datos (y puerto).
Importar en esta base de datos el fichero .sql descargado en el paso anterior mediante la opción de PHPMyAdmin de “importar”, seleccionando el fichero del disco duro del ordenador y subiéndolo.
Si el tamaño es muy grande, es recomendable comprimirlo en formato zip.
También se puede importar por línea de comandos SSH, subiéndolo previamente al servidor nuevo, y después importándolo (en este caso es necesario disponer del fichero .sql descomprimido):
mysql -p -u <nombre_usuario_base_de_datos> <nombre_base_de_datos> < <nombre_del_fichero_con_la_Base_de_Datos>.sql
y luego confirmar la operación con la contraseña.
Mover los ficheros de la carpeta www (a la que se ha descomprimido) al raíz del servidor. Si no permite realizar esta acción, puede ser por permisos (ver punto anterior).
Se puede hacer por SSH o por FTP/sFTP.
Editar el fichero wp-config.php que se encuentra en el raíz de la web (se puede hacer en el ordenador y luego subirlo por FTP o por ejemplo con algún editor disponible como el vi mediante la conexión por SSH), y cambiar los nuevos valores de nombre de la base de datos (DB_NAME), usuario (DB_USER) y contraseña de la misma (DB_PASSWORD).
Subir este fichero wp-config.php al servidor, sobrescribiendo el actual. Puede ser incluso necesario cambiar el servidor de bases de datos (depende siempre de la empresa proveedora de hosting).
A partir de este momento, la web debería estar ya accesible en el nuevo hosting y debería poder utilizarse como cuando se encontraba en el anterior.
En caso de querer cambiar la ruta de la web o el dominio (no solo el hosting) hay que modificar la información de la base de datos, por lo que aunque se puede hacer de forma manual abriendo con un editor de texto el fichero .sql y utilizando la opción de buscar (dominio inicial) y reemplazar por el dominio final y todas las rutas cambiarlas por la nueva usando este mismo método (yo suelo hacerlo así para no instalar plugins), el método 1 si la web está en WordPress es más eficiente para migrar o cambiar de hosting un WordPress manualmente.
Genio total…!!!
Se puede usar para Moodle? O espero el proximo Tutorial..??
Gracias por el excelente laburo..!!
Abzo
Muchas gracias, Carlos.
El método 2 se puede usar para Moodle, Prestashop, Magento… Para todo… :)
Saludos.
Buen tutorial. Muy completo.
Gracias por compartir.
Gracias.
Christian es un excelente profesional y profesor! gracias por esta información. Salvé mi trabajo web. Muy bien explicado todo!