Cómo hice un cambio de hosting, de Dreamhost a Siteground

Cómo hacer una migración sencilla de un hosting a otro

Llevaba muchos años utilizando el hosting compartido de Dreamhost para alojar varias webs y blogs, y estaba bastante contento con el servicio de este proveedor de hosting, ya que desde el primer día me han ofrecido un servicio muy estable, un panel de control multidominio muy fácil de utilizar, y tráfico y espacio ilimitado para todos mis dominios. Al principio la velocidad no era muy buena, pero con el paso de los años han ido mejorando mucho, aunque siempre he tenido el problema de que yo y la mayor parte de mis visitas estamos en España, y los servidores de Dreamhost están en Estados Unidos, cosa que siempre ha penalizado más de la cuenta los tiempos de carga de mis sitios.

Esa ha sido la principal razón del cambio, tener los servidores más cerca de mis usuarios para que el acceso a los sitios sea más rápido, y también disponer de una IP española, que puede ayudar un poco más con el SEO, eso y también la buena fama que tiene Siteground en cuanto a velocidad y calidad del servicio, y una buena oferta que ofrecían en ese momento, que me hizo acabar de decidirme.

Este ha sido el motivo del cambio de hosting, pero en este post, más que sobre el cambio voy a explicar cómo he hecho la migración de mis sitios desde los servidores de Dreamhost a los de Siteground, es algo bastante sencillo y que se puede encontrar en más sítios, pero yo 'me lo apunto' por si lo vuelvo a hacer en el futuro, y espero que de paso pueda ayudar a alguien más.

 

Migración de webs o blogs desde Dreamhost a Siteground

Antes de nada comentar que Siteground te ofrece al contratar su hosting migrarte gratuitamente una web de otro hosting al suyo, sólo tienes que solicitarlo desde el panel de control indicando los datos de conexión al otro hosting. Si sólo tienes una web o blog, o sólo uno 'importante', no hace falta que sigas leyendo, solicítalo después de contratar el hosting y ellos hacen el trabajo.

Yo tenía varios blogs, y no me quedó más remedio que hacer el cambio yo mismo, pero tampoco costó tanto, básicamente son 4 pasos: copia de los ficheros de cada sitio, creación de una base de datos, exportación e importación de las tablas para cada sitio, habilitación del dominio en el panel de control, y cambio de los datos de los servidores DNS en el sitio donde estén registrados los dominios.

 

Paso 1: Copia de los ficheros de cada dominio

Si habilitas el acceso por SSH a Siteground una manera muy efectiva es utilizar Rsync para que la copia se realice directamente entre los servidores, es lo más rápido, y no hace falta que los ficheros pasen por tu ordenador, pero no todo el mundo se siente cómodo trabajando en linea de comandos con una consola, aparte de que en Siteground hay que configurar algunas cosas antes de poder conectar por SSH (en este sitio explican cómo hacerlo con Putty), así que aquí voy a explicar el método que todo el mundo sabrá hacer que es utilizar un cliente de FTP para descargar los archivos primero en el ordenador local, y después subirlos al hosting de Siteground.

En mi caso he utilizado el cliente de FTP Filezilla, que es open source, y se puede descargar directamente desde la página de proyecto de Filezilla en sourceforge.

Descarga de los ficheros del dominio desde Dreamhost

Conexión a Dreamhost con los datos del usuario FTP del dominio a migrar. El usuario se puede ver en el panel de control de Dreamhost en la sección ‘Manage domains’. Si no recuerdas el password, o tienes que revisar si el usuario tiene permitido el acceso por FTH o SFTP, en la sección ‘Manage Users’ encontrarás el usuario y las opciones para modificar password y tipo de usuario.

Visión de usuarios y dominios en hosting Dreamhost

Con el botón ‘Connect via FTP’, con el nombre de usuario y el password puedes acceder por web a explorar los archivos a los que tiene acceso esta cuenta. El botón ‘WebFTPLogin’ te da acceso a una aplicación web (Pydio) que también te permite conectar por FTP al espacio de este usuario, pero tampoco te sirve para hacer la descarga, tendrás que utilizar un cliente FTP como Filezilla.

Pydio puede irte bien para probar los datos de conexión, lo más importante es que como nombre de servidor tienes que utilizar el nombre del servidor de Dreamhost donde está alojado tu dominio. Esa información también se muestra en la cuenta de usuario. En mi caso, mi servidor se llamaba flora, así que el nombre completo del servidor es flora.dreamhost.com.

Login en el FTP por web Pydio

Así, en Filezila tendría que introducir los siguientes datos:

Servidor: flora.dreamhost.com

Nombre de usuario: miusuariodreamhost

Contraseña: micontraseña

Puerto: 21

Descarga FTP de ficheros del hosting con Filezilla

Ahora, desde Filezilla u otro cliente de FTP que utilices, sólo tienes que navegar hasta el directorio web de tu dominio, y arrastrarlo a una carpeta del explorador de tu ordenador local para comenzar a copiar todos los ficheros del dominio.

Subida de los ficheros al nuevo hosting (Siteground)

Accede a tu cuenta de SiteGround, y entre los datos que te muestra verás ‘FTP Details’, con el nombre del servidor FTP, y una nota indicando que el password es el mismo que el de cPanel. En ‘cPanel Username’ verás el nombre de usuario de cPanel, que también es el nombre de usuario de FTP.

En Filezilla u otro cliente de FTP introduce estos datos para conectar y subir el directorio del dominio que acabas de descargar de Dreamhost en tu ordenador local.

 

Paso 2: Migración de la base de datos.

Lo primero, utilizar phpmyadmin para exportar la base de datos de dreamhost:

phpMyadmin para gestionar por web bases de datos MySQL

Exportación de la base de datos MySQL

En la sección Goodies del menú de la izquierda del panel de control de Dreamhost, seleccionar MySQL Databases, buscar la base de datos que se utilice para la aplicación web que esté funcionando en el dominio, en este caso Wordpress, y hacer clic en el nombre de la base de datos para acceder a los datos y opciones de acceso.

Es importante revisar que este autorizada tu IP en ‘Allowable Hosts’, y si no lo está añadirla a la lista. En la pantalla también se puede utilizar el botón ‘Show’ para mostrar en claro el password del usuario de base de datos.

Con el nombre y el password apuntado, y tu ip autorizada ya puedes acceder con phpmyadmin desde el enlace que tienes en el listado de bases de datos, o directamente desde la url https://mysql.tudominio.com .

Dentro de phpMyAdmin, en el menú principal selecciona la opción ‘Exportar’ y podrás descargar en tu ordenador local una copia completa de la base de datos en formato SQL, que luego vas a utilizar para importar la base de datos desde SiteGround.

Importación de la base de datos MySQL

Para la importación hay que crear una base de datos y un usuario de base de datos desde el CPanel de Siteground con la opción ‘MySQL Databases’, o con el ‘MySQL Database Wizard’. No olvides asignar el usuario a la base de datos con la opción ‘Add a user to a Database’, dentro de ‘MySQL Databases’, y  asignarle todos los permisos al usuario para que pueda trabajar sobre la base de datos.

Asignación de permisos en hosting SiteGround para usuario de MySQL

Puede que en el script SQL de exportación generado anteriormente, al principio tengas una instrucción para crear la base de datos. Si es así tendrás que comentarla para que la importación no te de error, ya que además tu base de datos seguramente va a tener otro nombre porque en SiteGround el nombre tendrá un prefijo con tu dominio principal. Total, que tendrás que hacer algo así al principio del script:

Comentar con ‘--‘  o eliminar la línea de creación de DB:

CREATE DATABASE IF NOT EXISTS `mibasededatos` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;

Utilizar el commando USE para decirle que trabaje sobre tu base de datos creada desde el panel de control:

USE `basededatos_siteground`;

(Otra opción es haber hecho la exportación de la BD utilizando las opciones avanzadas, y asegurándote de no seleccionar el check de creación de la base de datos)

 

Tras estos cambios, sólo hay que abrir PhpMyAdmin desde el mismo CPanel de SiteGround, seleccionar la base de datos, y utilizar la opción Import para seleccionar el script y cargar la BD.

Para blogs wordpress, modificación de los datos de conexión a la base de datos

Después, como tanto el nombre de usuario como el de base de datos habrán cambiado, hay que modificar los datos de conexión en el archivo ‘wp-config.php’, en el mismo directorio del dominio.

Son estas 4 líneas al principio del archivo:

define('DB_NAME', 'mibasededatos');        // The name of the database
define('DB_USER', 'miusuario');            // Your MySQL username
define('DB_PASSWORD', 'mipassword');       // ...and password
define('DB_HOST', 'mysql.midominio.com');  // ...and the server MySQL is running on

En Dreamhost, el servidor de mysql no es el mismo que el que aloja los ficheros, por eso es define como mysql.midominio.com, es una cosa que no suelen tener los hostings compartidos, (y algo que me gustaba de Dreamhost), que normalmente alojan ficheros y base de datos en el mismo servidor. El hosting de SiteGround no es una excepción, y como todo está en el mismo servidor en DB_HOST no hace falta poner el dominio, se puede rellenar simplemente cambiando 'mysql.midominio.com' por 'localhost'.

 

Paso 3: Modificación de los DNS en proveedor de registro, y habilitación del dominio

Por último, para que el dominio ‘se dirija’ hacia el servidor de SiteGround en lugar de el de DreamHost, y por fin tu web recién migrada entre en funcionamiento, sólo falta cambiar la información de los registros DNS con el nombre de los servidores DNS de SiteGround en lugar de los de DreamHost, accede al panel de control del lugar donde tengas registrado el dominio, y modifica esta información.

El nombre de los servidores DNS de SiteGround lo puedes ver en la misma home de tu cPanel como ‘Name Servers’. En mi caso, por ejemplo, son ns1.es5.siteground.eu y ns2.es5.siteground.eu.

Recuerda que este cambio no es de efecto inmediato, ya que la propagación del mismo en todo Internet, aunque el 90% puede completarse en una hora más o menos, el 100% no suele estar hasta uno, dos o más días después.

 

Paso 4: Añadir el dominio en cPanel

No olvides añadir el dominio al panel de control de SiteGround desde la sección Domains de cPanel

 

Espero que esta guía te haya servido de ayuda. Me ha quedado un poco larga, y a lo mejor parece más largo de lo que luego resulta, pero cuando te pones los pasos son bastante sencillos. La guía es para un traspaso de hosting de Dreamhost a SiteGround, más bien a modo de ejemplo, pero los pasos básicos te pueden servir en general para cualquier migración de una web o blog típico como Wordpress, Joomla, Drupal, Moodle, etc. que funcione con una base de datos MySQL.

 


Y si aún no has contratado tu nuevo hosting en SiteGround y quieres agradecerme el esfuerzo de preparar esta guía, puedes hacerlo a través de este enlace a la oferta de hosting compartido de SiteGround, a ti te costará lo mismo, y a mi me darán una pequeña comisión que me animará a seguir escribiendo guías de ayuda.


 

De hecho, tengo pendiente hacer una pequeña comparativa de rendimiento entre Dreamhost y SiteGround, ya que me he guardado algunas pruebas de rendimiento de blogs que he migrado a SiteGround. Te avanzo que los resultados de rendimiento van a dar como claro vencedor el hosting de SiteGround, y para visitas desde España/Europa ya no hay color, pero cuando encuentre un rato más preparo otro post con mi comparativa de rendimiento entre los dos hostings..