Cómo migrar una tienda PrestaShop a un nuevo servidor (cPanel)
Antes de Empezar: ¿Qué Necesitas para Migrar PrestaShop?
Migrar una tienda PrestaShop a un nuevo servidor con cPanel puede sonar aterrador, pero te prometo que con esta guía paso a paso lo harás sin perder los nervios (ni los pedidos). Antes de tocar nada, necesitas tener a mano tres cosas: acceso al panel de control antiguo (normalmente cPanel o Plesk), acceso al nuevo cPanel y un gestor de FTP como FileZilla (o el administrador de archivos del propio cPanel).
También es crucial que tengas las credenciales de tu base de datos MySQL antigua y las de la nueva. Si no las tienes, ve a tu proveedor de hosting actual y solicítalas. Sin estos datos, la migración web será imposible. Tómate 10 minutos para localizarlos y guardarlos en un bloc de notas.
Paso 1: Haz una Copia de Seguridad Completa de tu Tienda
Este es el paso más importante de todo el proceso. Nunca intentes migrar PrestaShop sin una copia de seguridad. Si algo sale mal, podrás restaurar todo en minutos.
1.1. Exporta los Archivos de tu Tienda
Primero, ve a tu cPanel antiguo y busca la sección "Administrador de archivos" (File Manager). Entra en la carpeta public_html (o www, depende del hosting). Selecciona todos los archivos y carpetas que veas, haz clic derecho y elige "Comprimir" (Compress). Elige formato ZIP y crea un archivo llamado tienda_completa.zip.
Descarga ese ZIP a tu ordenador. Si tu tienda es muy grande (más de 2 GB), te recomiendo usar FileZilla para descargar la carpeta completa por FTP, ya que el compresor del cPanel puede agotar el tiempo de espera del servidor.
1.2. Exporta la Base de Datos
Ahora ve a la sección "phpMyAdmin" dentro de tu cPanel antiguo. Selecciona la base de datos que usa tu PrestaShop (normalmente empieza con el prefijo de tu usuario, como usuario_prestashop). Haz clic en "Exportar" en el menú superior.
Elige el método "Rápido" y formato SQL. Deja todas las opciones por defecto y haz clic en "Continuar". Esto descargará un archivo .sql con todos tus productos, pedidos, clientes y configuración. Guarda este archivo junto al ZIP.
[WARNING] No uses la opción "Exportar" de la pestaña "Operaciones" de la base de datos. Usa siempre "Exportar" dentro de phpMyAdmin. La otra opción a veces genera archivos incompletos.
Paso 2: Prepara tu Nuevo Servidor con cPanel
Ahora vamos al hosting nuevo. Lo primero es crear la base de datos y el usuario que usará tu PrestaShop. Si ya tienes una instalación limpia de PrestaShop, puedes saltarte la instalación, pero si es un servidor vacío, sigue estos pasos.
2.1. Crea la Base de Datos y el Usuario MySQL
Entra en tu nuevo cPanel y busca la sección "Bases de datos MySQL". Crea una nueva base de datos con un nombre que reconozcas, por ejemplo nuevo_prestashop.
Luego, crea un usuario nuevo, por ejemplo nuevo_usuario, con una contraseña segura. Asegúrate de que la contraseña sea compleja (usa el generador de contraseñas del propio cPanel).
Ahora, en la misma sección, verás "Añadir usuario a la base de datos". Selecciona tu usuario y tu base de datos. IMPORTANTE: Marca la casilla "TODOS LOS PRIVILEGIOS". Sin esto, tu tienda no podrá leer ni escribir en la base de datos.
2.2. Sube los Archivos de tu Tienda
Vuelve al "Administrador de archivos" de tu nuevo cPanel. Entra en public_html. Si hay algún archivo (como un index.html de bienvenida), bórralo.
Sube el archivo tienda_completa.zip que descargaste antes. Una vez subido, haz clic derecho sobre él y selecciona "Extraer" (Extract). Espera a que termine. Después, elimina el archivo ZIP del servidor para que no quede basura.
[TIP] Si tu ZIP es enorme, súbelo por FTP con FileZilla. El administrador de archivos de cPanel a veces corta las subidas grandes. Con FileZilla, simplemente arrastra el archivo a la carpeta
public_htmly espera.
Paso 3: Importa la Base de Datos a tu Nuevo Servidor
Ahora toca pasar los datos. Ve a phpMyAdmin en tu nuevo cPanel. Selecciona la base de datos que acabas de crear (la vacía, nuevo_prestashop). En el menú superior, haz clic en "Importar".
Haz clic en "Elegir archivo" y selecciona el archivo .sql que exportaste antes. Deja todas las opciones por defecto y haz clic en "Continuar". Si la base de datos es muy grande, puede tardar unos minutos. Verás un mensaje de éxito al final.
[INFO] Si tu base de datos supera el límite de subida de phpMyAdmin (normalmente 50 MB), tendrás que subirla por SSH o usar la herramienta "Importar" de cPanel en la sección "Bases de datos MySQL". Otra opción es dividir el archivo SQL en partes más pequeñas con un editor de texto, pero eso es tedioso. Te recomiendo pedir a tu nuevo hosting que aumente el límite temporalmente.
Paso 4: Configura el Archivo de Conexión de PrestaShop
Este es el paso donde la mayoría de la gente se pierde, pero es más fácil de lo que parece. PrestaShop guarda la configuración de conexión a la base de datos en un archivo llamado parameters.php (en PrestaShop 1.7 y 1.8) o settings.inc.php (en versiones antiguas 1.6 y anteriores).
4.1. Localiza el Archivo de Configuración
Ve al "Administrador de archivos" de tu nuevo cPanel y navega hasta public_html/config/. Ahí verás el archivo parameters.php. Haz clic derecho y elige "Editar" (Edit).
4.2. Modifica los Datos de Conexión
Verás una serie de líneas con información de la base de datos. Busca estas variables:
database_host: normalmente eslocalhost. En algunos hostings puede ser una dirección IP o un nombre comomysql.tudominio.com. Déjalo comolocalhostsi tu nuevo hosting es estándar.database_name: cámbialo por el nombre de tu nueva base de datos (ej:nuevo_prestashop).database_user: cámbialo por tu nuevo usuario MySQL (ej:nuevo_usuario).database_password: pon la contraseña que elegiste para el usuario.database_prefix: déjalo tal cual. Normalmente esps_.
Guarda los cambios y cierra el archivo. Si tienes PrestaShop 1.6, el archivo es settings.inc.php y las variables se llaman _DB_SERVER_, _DB_NAME_, _DB_USER_, _DB_PASSWD_.
[WARNING] Asegúrate de no dejar espacios en blanco alrededor de los valores. Por ejemplo, escribe
'database_name' => 'nuevo_prestashop', no'nuevo_prestashop'. Un espacio extra puede romper toda la tienda.
Paso 5: Actualiza las URLs de tu Tienda
Este es un paso crítico que muchos olvidan. Si tu tienda usaba www.tudominio.com y ahora usas un dominio temporal como tudominio.com o una IP, necesitas actualizar las URLs en la base de datos.
5.1. Edita las Tablas de Configuración
En phpMyAdmin de tu nuevo servidor, selecciona tu base de datos y haz clic en la pestaña "SQL". Ejecuta las siguientes consultas SQL, reemplazando tudominio.com por tu dominio real:
UPDATE ps_shop_url SET domain = 'tudominio.com', domain_ssl = 'tudominio.com' WHERE id_shop = 1;
También necesitas actualizar la URL base:
UPDATE ps_configuration SET value = 'http://tudominio.com/' WHERE name IN ('PS_SHOP_DOMAIN', 'PS_SHOP_DOMAIN_SSL');
Si tu tienda tiene multitienda, tendrás que hacer esto para cada tienda. Para estar seguro, revisa la tabla ps_shop_url y verás los valores antiguos.
[TIP] Si usas un dominio temporal para probar antes de cambiar los DNS, usa esa URL temporal en las consultas SQL. Luego, cuando cambies el dominio definitivo, repite el proceso. Es más seguro que hacer la migración directamente con el dominio final.
Paso 6: Limpia la Carpeta Cache y los Archivos Temporales
PrestaShop guarda archivos de caché que pueden causar problemas si se quedan desactualizados. Después de migrar, es obligatorio limpiarlos.
Ve a public_html/var/cache (en PrestaShop 1.7+) o public_html/cache (en 1.6). Elimina todos los archivos dentro de las carpetas dev y prod (si existen). No borres las carpetas en sí, solo su contenido.
También borra el contenido de las carpetas public_html/var/logs y public_html/var/sessions. Esto evitará errores de sesión y logs antiguos.
[INFO] Si no puedes borrar los archivos desde el administrador de archivos, usa FileZilla. A veces los permisos de los archivos de caché están bloqueados. En FileZilla, haz clic derecho sobre los archivos y elige "Eliminar".
Paso 7: Configura los Permisos de Archivos
Los permisos incorrectos son una causa común de errores 500. En la mayoría de los casos, PrestaShop necesita que las carpetas tengan permisos 755 y los archivos 644.
En tu nuevo cPanel, ve al "Administrador de archivos". Selecciona todos los archivos y carpetas de public_html. Haz clic derecho y elige "Cambiar permisos". Pon 755 para las carpetas y 644 para los archivos. Marca la casilla "Cambiar también los archivos y carpetas dentro" para que se aplique recursivamente.
Luego, hay una carpeta especial que necesita permisos 775 o 777: var/cache, var/logs, img, upload y config. Si tienes problemas, dale 775 a esas carpetas.
[WARNING] No dejes todos los archivos con permisos
777. Eso es un agujero de seguridad enorme. Usa755y644como base, y solo sube a775las carpetas que PrestaShop necesita para escribir.
Paso 8: Prueba tu Tienda y Soluciona Errores Comunes
Ya casi está. Ahora abre tu navegador y visita tu dominio. Si todo ha ido bien, verás tu tienda funcionando. Si no, aquí tienes los errores más comunes y cómo solucionarlos.
8.1. Error 500 (Internal Server Error)
Esto suele ser por permisos incorrectos o por el archivo .htaccess. Ve al "Administrador de archivos" y muestra los archivos ocultos (cPanel tiene un botón para ello). Busca el archivo .htaccess en public_html. Si existe, descárgalo y guárdalo. Luego, renómbralo a .htaccess_old y prueba de nuevo. Si la tienda funciona, el problema es el .htaccess. Ve a tu back-office (admin) y en "Parámetros avanzados > Rendimiento" regenera el .htaccess.
8.2. Página en Blanco
Si ves una página en blanco, activa el modo depuración. Edita el archivo config/defines.inc.php y cambia _PS_MODE_DEV_ de false a true. Esto mostrará los errores PHP. Una vez corregido, vuelve a ponerlo en false.
8.3. Error de Conexión a la Base de Datos
Revisa el archivo parameters.php de nuevo. Asegúrate de que el host sea localhost y no el nombre del servidor antiguo. Si tu hosting usa un host diferente, lo encontrarás en el correo de bienvenida del nuevo proveedor.
Paso 9: Cambia los DNS de tu Dominio
Si estás migrando a un hosting nuevo con el mismo dominio, el último paso es cambiar los DNS. Ve a tu registrador de dominios (donde compraste el dominio) y busca la configuración de DNS o nameservers.
Reemplaza los nameservers antiguos por los que te dio tu nuevo hosting (normalmente son dos o tres como ns1.tunuevohosting.com y ns2.tunuevohosting.com). Guarda los cambios.
[INFO] La propagación de DNS puede tardar entre 2 y 48 horas. Durante ese tiempo, algunos usuarios verán tu tienda en el hosting antiguo y otros en el nuevo. No te asustes si ves resultados inconsistentes. Para forzar la propagación, puedes modificar el archivo
hostsde tu ordenador para apuntar directamente al nuevo servidor. Busca en Google "cómo editar archivo hosts en Windows/Mac" para hacerlo.
Paso 10: Post-Migración: Verificaciones Finales
Una vez que los DNS apunten al nuevo servidor, haz estas comprobaciones:
- Revisa los pedidos y clientes: Entra al back-office y verifica que tus pedidos y clientes están intactos.
- Prueba el carrito de compra: Añade un producto al carrito y completa una compra de prueba (puedes usar el modo de pago en efectivo). Esto verifica que el proceso de checkout funciona.
- Revisa las imágenes: Si las imágenes de los productos no cargan, ve a "Parámetros avanzados > Rendimiento" y haz clic en "Regenerar miniaturas".
- Configura el cron de PrestaShop: Si usabas un cron para tareas programadas, tendrás que configurarlo en el nuevo servidor. Ve a "Parámetros avanzados > Base de datos" y copia la URL del cron.
Preguntas Frecuentes (FAQ)
¿Puedo migrar PrestaShop sin usar cPanel?
Sí, puedes hacerlo por FTP y phpMyAdmin directamente, pero cPanel facilita mucho el proceso. Si tu hosting antiguo no tiene cPanel, usa FileZilla para descargar los archivos y phpMyAdmin para exportar la base de datos. El resto del proceso es idéntico.
¿Qué hago si mi base de datos es muy grande para phpMyAdmin?
Puedes usar la herramienta "Importar" del cPanel en la sección "Bases de datos MySQL". Otra opción es usar SSH si tu hosting lo permite. Si no, contacta al soporte de tu nuevo hosting y pídeles que aumenten el límite de subida temporalmente.
¿Perderé mis pedidos o clientes en la migración?
No, siempre que exportes e importes la base de datos correctamente. La base de datos contiene toda la información de tu tienda, incluyendo pedidos, clientes, productos y configuración.
¿Es necesario cambiar los DNS para probar la tienda?
No. Puedes probar la tienda usando un dominio temporal que te proporcione tu nuevo hosting o editando el archivo hosts de tu ordenador. Esto te permite verificar que todo funciona antes de hacer el cambio definitivo.
¿Qué pasa si tengo PrestaShop 1.6 y no 1.7?
El proceso es el mismo, pero el archivo de configuración se llama settings.inc.php en lugar de parameters.php. Las variables son _DB_SERVER_, _DB_NAME_, _DB_USER_ y _DB_PASSWD_. Todo lo demás funciona igual.
Conclusión: Migración Exitosa sin Dolores de Cabeza
Migrar PrestaShop a un nuevo servidor cPanel es un proceso mecánico que, siguiendo estos pasos, no debería llevarte más de una hora (más el tiempo de propagación de DNS). La clave está en la preparación: una buena copia de seguridad, una base de datos bien exportada y la configuración correcta del archivo de conexión.
Recuerda que si te quedas bloqueado en algún paso, la mayoría de los proveedores de hosting ofrecen soporte 24/7. No dudes en contact
