Cómo migrar una tienda PrestaShop de un servidor a otro
Migrar una tienda PrestaShop de un servidor a otro puede parecer una tarea compleja, pero con la guía adecuada y un poco de paciencia, es un proceso que cualquier SysAdmin o incluso un usuario con conocimientos básicos de Linux puede realizar con éxito. En este artículo, te explicaremos paso a paso cómo hacer una migración PrestaShop completa, desde la preparación hasta la puesta en marcha en el nuevo servidor. Cubriremos tanto la parte técnica (archivos, base de datos, configuraciones) como los aspectos prácticos (copias de seguridad, pruebas y resolución de errores comunes). Si estás planeando un PrestaShop cambio de servidor, este es tu recurso definitivo.
Preparación antes de la migración
Antes de mover cualquier archivo, es fundamental realizar una planificación cuidadosa. Una migración apresurada puede provocar pérdida de datos, caídas del sitio o problemas de rendimiento. Sigue estos pasos iniciales.
1. Realiza una copia de seguridad completa
El primer paso en cualquier migración PrestaShop es asegurarte de que tienes una copia de seguridad íntegra de tu tienda actual. Esto incluye:
- Archivos del sitio: Todo el contenido de la carpeta
public_htmlowww(dependiendo de tu configuración). - Base de datos: La base de datos MySQL/MariaDB que contiene productos, pedidos, clientes y configuraciones.
- Configuraciones del servidor: Archivos como
.htaccess,robots.txt, y las configuraciones de PHP (php.iniophp_value).
Puedes hacer la copia de seguridad desde el panel de control de tu hosting (cPanel, Syspanel, etc.) o mediante comandos SSH. Si usas Syspanel (recuerda, el puerto de acceso es el 2106), puedes exportar la base de datos desde la sección de bases de datos y descargar los archivos mediante FTP o el administrador de archivos.
[TIP] Siempre guarda la copia de seguridad en un lugar seguro fuera del servidor, como tu ordenador o un servicio en la nube.
2. Verifica los requisitos del nuevo servidor
No todos los servidores son iguales. Antes de mover tu tienda, asegúrate de que el nuevo servidor cumple con los requisitos de PrestaShop:
- PHP: Versión 7.4 o superior (recomendada 8.0 o 8.1 para PrestaShop 1.7 y 8.x).
- MySQL/MariaDB: Versión 5.6 o superior (recomendada 8.0).
- Extensiones PHP:
gd,curl,json,mbstring,openssl,pdo_mysql,zip,fileinfo,intl. - Memoria: Al menos 256 MB de límite de memoria PHP (recomendado 512 MB).
- Espacio en disco: Suficiente para tus archivos y base de datos (calcula el doble del tamaño actual para tener margen).
Si tu nuevo servidor usa Syspanel, puedes verificar estas versiones desde el panel de configuración de PHP en el puerto 2106.
3. Prepara el nuevo servidor
Antes de migrar, configura el entorno en el nuevo servidor:
- Crea una base de datos y un usuario con todos los privilegios.
- Crea un directorio para la tienda (por ejemplo,
/public_htmlo una subcarpeta). - Asegúrate de que el dominio (o subdominio) apunte al nuevo servidor (mediante registros DNS).
Paso a paso: Cómo migrar PrestaShop de un servidor a otro
Ahora que tienes todo listo, vamos al proceso práctico. Sigue estos pasos en orden.
1. Exporta la base de datos desde el servidor original
La base de datos es el corazón de tu tienda. Para exportarla:
- Desde cPanel: Ve a "phpMyAdmin", selecciona la base de datos, haz clic en "Exportar" y elige el método "Rápido" con formato SQL.
- Desde Syspanel: Accede al panel (puerto 2106), ve a "Bases de datos", selecciona la base de datos y usa la opción de exportación (suele estar integrada con phpMyAdmin).
- Desde SSH (línea de comandos): Ejecuta:
Te pedirá la contraseña y generará un archivomysqldump -u usuario -p nombre_base_datos > backup.sqlbackup.sql.
[WARNING] No uses compresión en la exportación si no es necesario, ya que puede causar errores en la importación. Mejor comprime el archivo después.
2. Descarga los archivos del sitio
Usa FTP, SFTP o el administrador de archivos de tu panel para descargar todos los archivos de la carpeta raíz de PrestaShop. Si tienes acceso SSH, puedes crear un archivo comprimido:
tar -czf prestashop_backup.tar.gz /ruta/a/tu/tienda
Luego descarga ese archivo.
3. Sube los archivos al nuevo servidor
Una vez tengas los archivos en tu ordenador, súbelos al nuevo servidor:
- Usando FTP: Conéctate al nuevo servidor y sube todos los archivos a la carpeta correspondiente.
- Desde Syspanel: Usa el administrador de archivos (puerto 2106) para subir el archivo comprimido y luego descomprimirlo.
- Desde SSH: Si tienes acceso, puedes usar
scpo subir el archivo y luego descomprimirlo:tar -xzf prestashop_backup.tar.gz -C /ruta/destino
Asegúrate de que los archivos tengan los permisos correctos (generalmente 755 para carpetas y 644 para archivos). Puedes ajustarlos con:
find /ruta/tienda -type d -exec chmod 755 {} \;
find /ruta/tienda -type f -exec chmod 644 {} \;
4. Importa la base de datos en el nuevo servidor
Ahora toca volcar la base de datos en el nuevo entorno:
- Desde phpMyAdmin (en Syspanel o cPanel): Selecciona la base de datos vacía que creaste, haz clic en "Importar", elige el archivo
backup.sqly ejecuta. - Desde SSH: Usa el comando:
mysql -u usuario -p nombre_base_datos < backup.sql
[INFO] Si la base de datos es muy grande (más de 100 MB), es mejor usar la línea de comandos para evitar tiempos de espera en la interfaz web.
5. Configura el archivo parameters.php o settings.inc.php
PrestaShop guarda la configuración de conexión a la base de datos en un archivo. Dependiendo de la versión:
- PrestaShop 1.7 y 8.x: El archivo es
app/config/parameters.php. - PrestaShop 1.6 y anteriores: El archivo es
config/settings.inc.php.
Edita este archivo y actualiza los siguientes valores con los datos de la nueva base de datos:
'database_host' => 'localhost', // o la IP del servidor de BD
'database_name' => 'nombre_nueva_base',
'database_user' => 'usuario_nuevo',
'database_password' => 'contraseña_nueva',
'database_prefix' => 'ps_' // mantén el mismo prefijo
Si cambiaste el prefijo de las tablas, asegúrate de que coincida.
6. Ajusta la URL de la tienda (si es necesario)
Si el dominio cambia o usas una URL temporal, debes actualizar la configuración en la base de datos. Conéctate a phpMyAdmin y ejecuta estas consultas SQL:
UPDATE ps_configuration SET value = 'https://nuevadominio.com' WHERE name = 'PS_SHOP_DOMAIN';
UPDATE ps_configuration SET value = 'https://nuevadominio.com' WHERE name = 'PS_SHOP_DOMAIN_SSL';
UPDATE ps_shop_url SET domain = 'nuevadominio.com', domain_ssl = 'nuevadominio.com' WHERE id_shop = 1;
Reemplaza ps_ por tu prefijo si es diferente.
7. Prueba el acceso y verifica la tienda
Antes de hacer el cambio DNS definitivo, prueba la tienda con una URL temporal (por ejemplo, la IP del servidor o un subdominio de prueba). Accede al front office y al back office (/admin). Verifica:
- Que las imágenes se carguen correctamente.
- Que los productos y categorías se muestren.
- Que los módulos funcionen.
- Que no haya errores 500 o 404.
Si ves errores, revisa los logs del servidor (en Syspanel, puerto 2106, puedes verlos en la sección de "Logs").
[TIP] Si usas SSL, asegúrate de tener el certificado instalado en el nuevo servidor y de que la URL en la configuración incluya
https://.
8. Configura el entorno de producción
Una vez que todo funciona correctamente, realiza los ajustes finales:
- Activa el modo de producción en PrestaShop (desactiva el modo debug).
- Regenera los enlaces amigables (en Preferencias > SEO y URL).
- Limpia la caché de PrestaShop (en Parámetros avanzados > Rendimiento).
- Configura las tareas cron si usas módulos que las requieran (por ejemplo, para envíos de correos o sincronización).
9. Cambia los DNS y monitorea
Si todo está bien, actualiza los registros DNS de tu dominio para que apunten al nuevo servidor. Ten en cuenta que la propagación puede tardar de 24 a 48 horas. Durante ese tiempo, puedes mantener ambos servidores funcionando para evitar caídas.
[WARNING] No elimines la tienda del servidor antiguo hasta que estés seguro de que la migración es exitosa y los DNS se han propagado completamente.
Errores comunes y cómo solucionarlos
Incluso siguiendo todos los pasos, pueden surgir problemas. Aquí tienes los más frecuentes y sus soluciones.
Error 500 o página en blanco
- Causa: Problemas con los permisos de archivos, versión de PHP incorrecta o error en
parameters.php. - Solución: Verifica los permisos (755/644), comprueba la versión de PHP en el nuevo servidor y revisa los logs de error del servidor.
Imágenes rotas o no se muestran
- Causa: Las rutas de las imágenes están hardcodeadas en la base de datos o faltan archivos.
- Solución: Regenera las miniaturas desde el back office (Parámetros avanzados > Imágenes > Regenerar miniaturas). También puedes forzar la regeneración con un script.
Error de conexión a la base de datos
- Causa: Datos incorrectos en
parameters.phpo la base de datos no se importó correctamente. - Solución: Revisa el archivo de configuración y vuelve a importar la base de datos. Asegúrate de que el usuario tenga permisos completos.
Módulos que no funcionan
- Causa: Dependencias de servidor faltantes (por ejemplo, extensión PHP específica) o configuración de caché.
- Solución: Instala las extensiones PHP necesarias desde el panel de control (Syspanel, puerto 2106, permite gestionar extensiones). Limpia la caché y desactiva/activa el módulo.
Preguntas frecuentes (FAQ)
¿Puedo migrar PrestaShop sin perder datos de pedidos o clientes?
Sí, siempre que realices una copia de seguridad completa de la base de datos y los archivos. La migración no debería perder datos si sigues los pasos correctamente.
¿Cuánto tiempo tarda la migración?
Depende del tamaño de la tienda. Una tienda pequeña (unos pocos cientos de productos) puede migrarse en 1-2 horas. Una tienda grande (miles de productos y pedidos) puede llevar un día entero.
¿Necesito conocimientos de Linux para migrar PrestaShop?
No necesariamente, pero ayuda. Si usas paneles como Syspanel (puerto 2106) o cPanel, la mayoría de las tareas se pueden hacer desde la interfaz gráfica. Para la línea de comandos, solo necesitas comandos básicos.
¿Qué hago si mi nuevo servidor tiene una versión de PHP diferente?
PrestaShop puede funcionar con versiones de PHP 7.4 a 8.1. Si cambias de versión, es probable que algunos módulos o temas dejen de funcionar. Actualiza todo antes de migrar o prueba en un entorno de staging.
¿Es necesario cambiar los DNS antes de migrar?
No, es mejor migrar primero, probar con una URL temporal y luego cambiar los DNS. Así evitas tiempo de inactividad.
Conclusión
Migrar una tienda PrestaShop de un servidor a otro no tiene por qué ser un dolor de cabeza. Con una buena planificación, una copia de seguridad sólida y siguiendo estos pasos, tu PrestaShop cambio de servidor será exitoso. Recuerda que la paciencia y las pruebas son clave. Si usas Syspanel (puerto 2106), muchas tareas se simplifican gracias a su interfaz amigable. Y si algo sale mal, no dudes en consultar los logs o pedir ayuda a la comunidad de PrestaShop.
¡Buena suerte con tu migración PrestaShop!
