Hoy voy a mostrar mi experiencia y una guía al migrar un sitio de WordPress de un servidor a otro. Concretamente de un servidor compartido a un VPS.
Pero antes, un poco de historia…
Era un sábado tranquilo por la mañana (no había escuela), desperté y revisé el correo para encontrarme con el siguiente mensaje:
Al parecer, tenía demasiados archivos en mi hosting y por lo tanto debía eliminarlos o actualizar mi plan.
El hosting funcionaba perfecto, era rápido y confiable, pero no me gustaban sus límites. Además, tenía un VPS para cosas que no tenían que ver con PHP y para un bot de Telegram personal, así que estaba desperdiciando su poder.
Por otro lado, al rentar el hosting compartido compré un dominio que no me hacía falta y quería deshacerme de él pero no podía porque tenía que cambiar el dominio principal y en fin, se iba a armar una cosa espantosa así que decidí mover mi sitio al VPS.
Instalar WordPress
Para este entonces ya tenía WordPress, Apache y PHP en mi VPS, solo que era una instalación vacía.
Exportar datos de sitio antiguo
Esta fue la parte más compleja. Podría haberlo hecho a mano (y creo que al final me habría salido mejor, pero no lo sabía) pero no lo hice, así que busqué un plugin.
Me encontré con WP ALL IMPORT pero no me convenció, y buscando encontré otro llamado All-in-One WP Migration y ese funcionó perfectamente.
Exporté mis datos (pesaban bastante, pero ahí iban las imágenes y la base de datos) y los descargué en mi PC, después instalé el mismo plugin en el nuevo sitio y subí el mismo.
Mi internet es demasiado lento y para subir ese archivo tuve que esperar aproximadamente 7 horas, en fin, después de eso la importación se había terminado.
Migrar otros archivos
El plugin hizo su trabajo con WordPress, pero no con mis apps ni ejemplos, esos los tuve que mover manualmente.
Como ya lo mencioné, mi internet es demasiado lento, pero el de mis servidores no. Gracias a que en ambos tenía acceso a la terminal, pude utiliza scp para copiar los archivos.
Quiero resaltar la velocidad con la que se copió el archivo de main.wasm del ejemplo de WebAssembly con Go, 2.5 MB por segundo es muy rápido comparado con mi velocidad normal, además de que esa no es la máxima que alcancé.
Después de eso ya tenía todo mi sitio migrado, o al menos hablando de datos, me despedí del antiguo y salí.
Arreglar errores
Como este era un servidor nuevo y no había configurado los DNS, tuve que acceder e instalar WordPress por otro lado.
El sistema Sublime POS 3 está aquí mismo, así que para acceder a mi instalación de wordpress simplemente usé:
sublime-pos.parzibyte.me
Y como entré por el puerto 80, me mostró lo de Apache (ya que Sublime POS escucha en el 2811)
El gran problema fue que, al importar, las rutas (por ejemplo, las rutas de las imágenes) se cambiaron y ahora decían sublime-pos.parzibyte.me, cosa que no debería ser; ya que debí de hacer todo bien desde el principio, pero no lo hice.
Más tarde, cambié los DNS y ya no podía acceder a sublime-pos.parzibyte.me pero tampoco a parzibyte.me porque me redirigía a sublime-pos.parzibyte.me
Tuve que modificar el wp-config.php ya que no podía entrar al panel de control:
Ahora solo tuve que esperar un poco para que se propagara el DNS, me fui a dormir tranquilo. También instalé un certificado SSL gratuito de Let’s encrypt (espero hacer el tutorial pronto)
Al otro día resolví el problema de las rutas que se modificaron, así que simplemente utilicé MySQL directamente con la función replace para remplazar las URL.
Aquí un ejemplo de las consultas que hice:
update wp_posts set
post_content = replace(post_content, "http://sublime-pos.parzibyte.me","https://parzibyte.me")
where post_content like "%http://sublime-pos.parzibyte.me%" limit 200;
Lo fui haciendo en bloques para no sobrecargar al servidor. Con eso terminé y espero que todo salga bien a partir de hoy.