Cómo migrar PrestaShop de un hosting a otro (Plesk a cPanel) sin downtime
Introducción: ¿Por qué migrar PrestaShop de Plesk a cPanel?
Migrar una tienda online puede sonar aterrador, especialmente si no eres un experto en servidores. Sin embargo, cambiar de hosting es una operación mucho más común de lo que piensas. Las razones para hacerlo son variadas: mejor rendimiento, soporte técnico más eficiente, precios más bajos o simplemente la necesidad de pasar de un panel de control como Plesk a otro como cPanel.
La buena noticia es que migrar PrestaShop de un hosting a otro sin downtime es totalmente posible si sigues un plan meticuloso. El "downtime" (tiempo en el que tu tienda está caída) es el enemigo número uno de cualquier negocio online, ya que cada minuto de inactividad se traduce en pérdida de ventas y confianza de tus clientes.
En esta guía, te explicaré paso a paso cómo realizar una migración PrestaShop exitosa desde un servidor Plesk a uno cPanel. No necesitas ser un gurú de la terminal; solo necesitas paciencia, una buena conexión a internet y seguir estas instrucciones al pie de la letra. Vamos a desmitificar el proceso y hacerlo manejable, incluso para quienes nunca han hecho un cambio de hosting PrestaShop antes.
Fase 0: Preparación y requisitos previos
Antes de tocar cualquier archivo, es vital preparar el terreno. Esta fase es la más aburrida, pero también la más crucial. Un error aquí puede significar un desastre más adelante.
Inventario de tu tienda actual
Primero, necesitas saber exactamente qué tienes en tu servidor Plesk. Esto incluye:
- Archivos del sitio: El directorio raíz (normalmente
httpdocsopublic_html). - Base de datos MySQL: El nombre de la BD, el usuario y la contraseña.
- Archivos de configuración: Principalmente
/config/settings.inc.php, que contiene las credenciales de conexión a la BD. - Correos electrónicos: Si tu hosting incluye cuentas de correo, deberás migrarlas también (aunque esto es opcional si usas un servicio externo como Google Workspace).
- Tareas cron: PrestaShop usa cron jobs para tareas como la generación de informes o la actualización de módulos. Anota todas las configuradas en Plesk.
Requisitos del nuevo hosting cPanel
Asegúrate de que tu nuevo proveedor con cPanel cumpla con los requisitos mínimos de PrestaShop. No querrás migrar y descubrir que el servidor es demasiado lento o no soporta la versión de PHP que necesitas.
- Versión de PHP: PrestaShop 1.7 y 8.x requieren PHP 7.1 o superior (idealmente PHP 8.0 o 8.1).
- MySQL: Versión 5.6 o superior (MySQL 8.0 es lo recomendado hoy en día).
- Espacio en disco: Debe ser al menos el doble del tamaño de tu sitio actual para tener espacio para los archivos y la base de datos.
- SSL: Asegúrate de que puedas instalar un certificado SSL gratuito (Let's Encrypt) o uno pagado.
[INFO] Antes de empezar, descarga una copia de seguridad completa de tu tienda en tu ordenador local. Esta será tu red de seguridad si algo sale mal durante la migración PrestaShop.
Fase 1: Copia de seguridad completa en Plesk
Este es el paso más importante. No puedes migrar lo que no tienes. Vamos a crear una copia de seguridad en dos partes: archivos y base de datos.
1.1. Copia de seguridad de la base de datos
Plesk tiene un administrador de bases de datos integrado. Sigue estos pasos:
- Inicia sesión en tu panel de control Plesk.
- Ve a la sección "Bases de datos" (o "Databases").
- Localiza la base de datos de tu PrestaShop. El nombre suele ser similar al de tu dominio (ej:
mishop_db). - Haz clic en el nombre de la BD para entrar a sus opciones.
- Busca la opción "Exportar" o "Dump". Plesk te permitirá descargar un archivo
.sql(o.gz). Elige la opción que te ofrezca un archivo comprimido para mayor velocidad. - Guarda este archivo en tu ordenador. No lo abras, solo guárdalo.
[TIP] Si tu base de datos es muy grande (más de 100 MB), es posible que la exportación desde Plesk falle o tarde mucho. En ese caso, puedes usar phpMyAdmin. Dentro de Plesk, busca el icono de phpMyAdmin y exporta la BD desde allí. Asegúrate de elegir el método "Personalizado" y selecciona "Comprimir" con "gzip".
1.2. Copia de seguridad de los archivos del sitio
Ahora vamos a por los archivos. Necesitas descargar todo el contenido de tu tienda.
- En Plesk, ve a "Sitios web y dominios".
- Haz clic en tu dominio.
- Busca el directorio raíz (normalmente llamado
httpdocs). Haz clic en el icono de "Gestor de archivos" (File Manager). - Dentro del gestor, navega hasta el directorio
httpdocs. - Selecciona todos los archivos y carpetas dentro de
httpdocs. Una forma fácil es hacer clic en "Seleccionar todo" en la parte superior. - Busca la opción "Comprimir" o "Add to Archive". Elige formato
.zip(es el más universal). - El sistema creará un archivo
.zipen el mismo directorio. Descárgalo a tu PC.
[WARNING] Asegúrate de que el archivo comprimido se haya descargado por completo y tenga un tamaño coherente con el espacio que ocupaba tu web. Si el archivo pesa 0 KB o es sospechosamente pequeño, algo falló. Repite el proceso.
Fase 2: Preparación del nuevo hosting en cPanel
Ya tienes tu copia de seguridad. Ahora vamos a preparar el terreno en el nuevo servidor.
2.1. Crear la base de datos y el usuario
En cPanel, las bases de datos se gestionan de forma diferente a Plesk. Necesitas crear una BD y un usuario, y luego vincularlos.
- Inicia sesión en tu cPanel.
- Busca la sección "Bases de datos" y haz clic en "Bases de datos MySQL".
- En el campo "Nueva base de datos", escribe un nombre (ej:
mishop_nueva). cPanel añadirá automáticamente el prefijo de tu cuenta (ej:usuario_mishop_nueva). Haz clic en "Crear base de datos". - Ahora, en la misma página, busca la sección "Usuarios de MySQL". Crea un nuevo usuario (ej:
usuario_mishop_user) y una contraseña segura. Anota estos datos, los necesitarás más tarde. - Finalmente, en la sección "Añadir usuario a la base de datos", selecciona el usuario y la BD que acabas de crear, y haz clic en "Añadir".
- En la siguiente pantalla, marca la casilla "TODOS LOS PRIVILEGIOS" y haz clic en "Hacer cambios".
2.2. Subir los archivos al nuevo servidor
Ahora toca subir el archivo .zip que descargaste de Plesk.
- En cPanel, ve a "Archivos" -> "Administrador de archivos".
- Navega hasta el directorio
public_html. Si existe algún archivo (como unindex.htmlpor defecto), selecciónalo y elimínalo. - Haz clic en "Cargar" (Upload) en la barra superior.
- Arrastra tu archivo
.zipa la zona de carga. Espera a que se complete la subida (el tiempo dependerá del tamaño de tu web y tu conexión). - Una vez subido, verás el archivo
.zipen el listado. Haz clic derecho sobre él y selecciona "Extraer" (Extract). - cPanel extraerá el contenido en el directorio
public_html. Asegúrate de que los archivos estén directamente enpublic_html, no en una subcarpeta. Si al extraer se crea una carpetahttpdocso similar, tendrás que mover su contenido al directorio raíz.
[INFO] Si tu archivo
.zipes muy grande, puede que la extracción falle. En ese caso, puedes usar un cliente FTP como FileZilla para subir los archivos directamente, sin comprimir. Es más lento, pero más fiable para archivos enormes.
Fase 3: Importar la base de datos
Ahora vamos a meter los datos de tu tienda en la nueva base de datos.
- En cPanel, busca la sección "Bases de datos" y haz clic en "phpMyAdmin".
- En el panel izquierdo, verás tu nueva base de datos (ej:
usuario_mishop_nueva). Haz clic en ella para seleccionarla. - En la barra superior, haz clic en la pestaña "Importar".
- Haz clic en "Elegir archivo" y selecciona el archivo
.sql(o.gz) que descargaste en la Fase 1. - Haz clic en "Continuar" o "Importar" en la parte inferior.
- Espera a que termine. Para bases de datos grandes, puede tardar unos minutos. No cierres la ventana.
[WARNING] Nunca importes la base de datos en una base existente con datos. Asegúrate de que has seleccionado la base de datos vacía que creaste en el paso 2.1. Importar sobre una BD con datos puede causar errores de duplicados y corromper la instalación.
Fase 4: Configurar el archivo settings.inc.php
Este es el paso más crítico de la migración PrestaShop. Sin él, tu tienda no podrá conectarse a la nueva base de datos.
- En el Administrador de archivos de cPanel, navega a
public_html/config/. - Busca el archivo
settings.inc.php. Haz clic derecho y selecciona "Editar" (o "Edit"). Se abrirá un editor de texto. - Busca las siguientes líneas y modifícalas con los datos de tu nueva base de datos:
define('_DB_SERVER_', 'localhost'); // Normalmente es 'localhost', pero cPanel puede usar un nombre de host específico. La mayoría de las veces 'localhost' funciona.
define('_DB_NAME_', 'usuario_mishop_nueva'); // El nombre completo de tu BD en cPanel.
define('_DB_USER_', 'usuario_mishop_user'); // El usuario que creaste.
define('_DB_PASSWD_', 'TU_CONTRASEÑA'); // La contraseña de ese usuario.
- Guarda los cambios y cierra el editor.
[TIP] Si tu proveedor de cPanel utiliza un host de base de datos externo (como
mysql.tudominio.com), el valor de_DB_SERVER_será ese, nolocalhost. Puedes encontrarlo en la sección "Bases de datos MySQL" de cPanel, donde dice "Servidor de base de datos".
Fase 5: Modificar la URL de la tienda (si es necesario)
Si tu nombre de dominio no cambia (es decir, migras el mismo dominio a un nuevo hosting), puedes saltarte este paso. Pero si estás migrando a un dominio provisional o de prueba, necesitas actualizar la URL.
Puedes hacerlo de dos maneras:
Opción A: Modificar el archivo settings.inc.php directamente.
Busca las líneas _PS_BASE_URL_ y _PS_BASE_URL_SSL_ y cámbialas por la nueva URL (ej: http://www.tudominio.com o https://www.tudominio.com).
Opción B: Usar una consulta SQL.
Desde phpMyAdmin, selecciona tu base de datos y haz clic en la pestaña "SQL". Ejecuta la siguiente consulta (reemplaza las URLs):
UPDATE ps_shop_url SET domain='www.nuevodominio.com', domain_ssl='www.nuevodominio.com' WHERE main=1;
[INFO] La opción B es más completa porque también actualiza las URLs en las tablas de configuración y de enlaces permanentes. Es la forma recomendada para evitar problemas con el SEO.
Fase 6: La migración sin downtime definitiva (El truco del DNS)
Aquí es donde entra la magia para no tener downtime PrestaShop. La clave está en el TTL (Time To Live) del DNS.
6.1. Reducir el TTL antes de migrar
El TTL es el tiempo que los servidores DNS de todo el mundo "recuerdan" la IP de tu dominio. Si tu TTL es de 24 horas, cuando cambies los DNS, el cambio tardará hasta 24 horas en propagarse. Eso significa que algunos usuarios verán tu web en el servidor viejo y otros en el nuevo, lo que puede causar inconsistencias.
Planificación clave: Al menos 48 horas antes de la migración, reduce el TTL de tu dominio a 5 minutos (300 segundos). Esto se hace en el panel de control de tu registrador de dominios (donde compraste el dominio, ej: GoDaddy, Namecheap, etc.).
6.2. El día de la migración
- Realiza una copia de seguridad actualizada de tu base de datos y archivos (como en la Fase 1). Esto es para capturar cualquier cambio (nuevos pedidos, clientes, etc.) que haya ocurrido desde la copia original.
- Importa esta copia actualizada al nuevo servidor (como en las Fases 2 y 3).
- Actualiza la configuración en el nuevo servidor (Fase 4).
- Prueba tu tienda en el nuevo servidor. Puedes hacerlo editando el archivo
hostsde tu ordenador para que apunte tu dominio a la IP del nuevo servidor. De esta manera, solo tú verás la versión nueva, mientras el resto del mundo sigue viendo la antigua. Esto te permite verificar que todo funciona (productos, carrito, pago, etc.) sin afectar a tus clientes. - Cambia los DNS de tu dominio en tu registrador para que apunten a la nueva IP (la de cPanel). El cambio se propagará en cuestión de minutos (debido al TTL reducido).
- Espera a que el DNS se propague. Puedes usar herramientas como
dnschecker.orgpara verificar que el cambio se ha realizado en todo el mundo. - ¡Listo! Una vez que el DNS se ha propagado, todos los usuarios verán la nueva tienda. No ha habido un momento en el que la tienda estuviera caída, solo ha habido una transición "en caliente".
[TIP] Para una verificación más precisa, después de cambiar los DNS, puedes usar el comando
pingonslookupdesde tu terminal (CMD en Windows o Terminal en Mac/Linux) para ver la IP a la que resuelve tu dominio.
Fase 7: Post-migración y verificación final
La migración no termina cuando cambias los DNS. Hay que asegurarse de que todo está en orden.
7.1. Comprobaciones críticas
- Fuerza el refresco del navegador: Usa
Ctrl + F5(oCmd + Shift + Ren Mac) para omitir la caché de tu navegador y ver la nueva versión. - Revisa la tienda en modo incógnito: Esto te mostrará la web como la vería un usuario nuevo.
- Haz un pedido de prueba: Prueba todo el flujo: añadir al carrito, checkout, pago (si es posible con un método de prueba) y confirmación.
- Verifica el panel de administración: Entra a
/admin(o tu carpeta de administración) y asegúrate de que puedes acceder y que todo se ve correctamente. - Revisa los correos: Si migraste cuentas de correo, envíate un email de prueba a ti mismo para verificar que
