Cómo migrar PrestaShop de un servidor a otro (cPanel/Plesk)
Preparación antes de la migración
Migrar PrestaShop de un servidor a otro puede parecer una tarea compleja, pero con una buena planificación y siguiendo los pasos adecuados, es un proceso completamente manejable. Antes de lanzarte a mover archivos y bases de datos, es fundamental que hagas una copia de seguridad completa de tu tienda actual.
La copia de seguridad debe incluir dos elementos esenciales: todos los archivos de tu instalación de PrestaShop (la carpeta raíz donde está instalada la tienda) y la base de datos completa. Ambos son inseparables, ya que PrestaShop guarda la configuración, los productos, los clientes y los pedidos en la base de datos, mientras que los archivos contienen el código, las imágenes, los módulos y los temas.
Para hacer esta copia, puedes usar el administrador de archivos de tu panel de control actual (cPanel o Plesk) para comprimir la carpeta de PrestaShop en un archivo ZIP o TAR.GZ. Para la base de datos, usa phpMyAdmin, exportando la base de datos completa en formato SQL. Asegúrate de que la exportación incluya todas las tablas y que uses la opción de "método de exportación rápido" o "personalizado" marcando todas las tablas.
También es un buen momento para anotar la versión exacta de PrestaShop que tienes, la versión de PHP que usa tu servidor actual y cualquier configuración especial de tu tienda, como URLs amigables, configuraciones de correo SMTP o ajustes de caché. Esta información te será muy útil durante la configuración en el nuevo servidor.
Elegir el nuevo servidor y comprobar los requisitos
Antes de empezar la migración de PrestaShop, verifica que tu nuevo servidor cumple con los requisitos mínimos de la versión de PrestaShop que vas a instalar. Puedes consultar los requisitos en la documentación oficial de PrestaShop, pero de forma general necesitarás:
- PHP 7.1 o superior (idealmente PHP 7.4 u 8.0 para mayor rendimiento)
- MySQL 5.6 o superior o MariaDB 10.0 o superior
- Espacio en disco suficiente para tus archivos y base de datos
- SSL disponible para poder configurar HTTPS
Si tu nuevo servidor usa cPanel, el proceso será bastante similar a la mayoría de paneles. Si usa Plesk, la interfaz cambia un poco, pero los conceptos son los mismos. En ambos casos, necesitarás crear una cuenta de hosting, una base de datos nueva con su usuario y contraseña, y tener acceso a la gestión de archivos.
Paso 1: Crear la base de datos en el nuevo servidor
El primer paso técnico en el nuevo servidor es preparar el terreno. Entra en el panel de control de tu nuevo hosting (cPanel o Plesk) y busca la sección de Bases de Datos MySQL.
En cPanel, la sección se llama "MySQL Databases". Crea una nueva base de datos con un nombre que te resulte fácil de identificar. Por ejemplo, si tu tienda se llama "mitienda", puedes llamar a la base de datos "mitienda_db". Después, crea un usuario para esa base de datos, por ejemplo "mitienda_user", y asígnale una contraseña segura. Finalmente, añade ese usuario a la base de datos con todos los privilegios.
En Plesk, el proceso es similar. Ve a "Bases de datos", crea una nueva base de datos y luego crea un usuario con acceso a ella. Plesk suele crear el usuario al mismo tiempo que la base de datos.
[!TIP]
Guarda el nombre de la base de datos, el usuario y la contraseña en un archivo de texto. Los necesitarás más adelante cuando edites el archivo de configuración de PrestaShop.
Paso 2: Subir los archivos de PrestaShop al nuevo servidor
Ahora viene la parte de mover los archivos. Tienes dos opciones principales: usar el Administrador de Archivos del panel o usar un cliente FTP como FileZilla.
Subir los archivos mediante el Administrador de Archivos
En cPanel, ve a "Administrador de Archivos" (File Manager) y navega hasta la carpeta public_html (o la carpeta raíz de tu dominio). Si tu tienda va a estar en el dominio principal, sube el archivo ZIP que contiene tu copia de seguridad directamente a public_html. Después, haz clic derecho sobre el archivo ZIP y selecciona "Extraer" para descomprimir todos los archivos en esa carpeta.
En Plesk, el Administrador de Archivos se encuentra dentro del dominio correspondiente. La carpeta raíz suele llamarse httpdocs. El proceso es el mismo: sube el ZIP y extráelo allí.
[!WARNING]
Asegúrate de que la estructura de carpetas sea la correcta. Si tu PrestaShop estaba instalado en una subcarpeta (por ejemplo,public_html/tienda), deberás mantener esa misma estructura en el nuevo servidor para que las URLs no cambien. Si lo subes todo directamente apublic_htmly antes estaba en una subcarpeta, tendrás que ajustar la configuración.
Subir los archivos mediante FTP
Si prefieres usar FTP, conecta con FileZilla a tu nuevo servidor usando las credenciales FTP que te ha proporcionado tu proveedor de hosting. Navega a la carpeta raíz (public_html o httpdocs) y arrastra todos los archivos de tu copia de seguridad desde tu ordenador. Este método puede ser más lento si tienes muchos archivos, pero es más fiable para carpetas muy grandes.
Paso 3: Importar la base de datos
Una vez que los archivos están en su lugar, es hora de importar la base de datos. Vuelve a entrar en phpMyAdmin desde el nuevo panel de control (en cPanel, busca el icono de phpMyAdmin; en Plesk, está dentro de la sección de bases de datos).
Selecciona la base de datos que creaste en el Paso 1 y haz clic en la pestaña Importar. Haz clic en "Elegir archivo" (o "Browse") y selecciona el archivo SQL que exportaste de tu servidor original. Asegúrate de que el formato sea SQL y haz clic en "Continuar" o "Importar".
Dependiendo del tamaño de tu base de datos, la importación puede tardar unos segundos o varios minutos. Si el archivo es muy grande (más de 50 MB), es posible que tengas que subirlo comprimido en GZIP o usar la herramienta de importación desde la línea de comandos, pero eso es para casos más avanzados. La mayoría de veces, phpMyAdmin puede manejar archivos de hasta 50 MB sin problemas.
[!INFO]
Si tu archivo SQL es demasiado grande para importarlo a través de phpMyAdmin, puedes comprimirlo en formato .gz o .zip desde tu ordenador antes de subirlo. phpMyAdmin puede descomprimir archivos comprimidos durante la importación.
Paso 4: Configurar el archivo settings.inc.php
Este es el paso más delicado de la migración de PrestaShop. PrestaShop guarda la configuración de conexión a la base de datos en un archivo llamado settings.inc.php, que se encuentra en la carpeta config de tu instalación.
Abre el Administrador de Archivos de tu nuevo servidor y navega a config/settings.inc.php. Haz clic derecho sobre el archivo y selecciona "Editar" (o "Edit"). Encontrarás unas líneas de código que definen las constantes de conexión a la base de datos. Deberás modificar las siguientes líneas:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'nombre_base_datos');
define('_DB_USER_', 'usuario_base_datos');
define('_DB_PASSWD_', 'contraseña_base_datos');
Cambia los valores por los que creaste en el nuevo servidor. El _DB_SERVER_ normalmente es localhost, pero si tu proveedor usa un servidor de bases de datos externo, te indicará la dirección exacta.
[!WARNING]
Ten mucho cuidado al editar este archivo. Un error de sintaxis, como una comilla mal puesta, puede hacer que tu tienda no cargue. Si no te sientes cómodo editándolo, puedes usar un editor de texto plano como Notepad++ en tu ordenador, descargar el archivo, editarlo y subirlo de nuevo.
Paso 5: Ajustar la configuración de la tienda
Después de importar la base de datos y editar el archivo de configuración, es probable que necesites ajustar algunas configuraciones en la base de datos. Esto es especialmente importante si la URL de tu tienda ha cambiado.
Para ello, accede a phpMyAdmin en tu nuevo servidor, selecciona tu base de datos y busca la tabla ps_configuration (el prefijo ps_ puede variar si lo cambiaste en tu instalación). Dentro de esta tabla, busca las filas que tengan el nombre PS_SHOP_DOMAIN y PS_SHOP_DOMAIN_SSL. Edita estas filas y cambia el valor por tu nuevo dominio (sin http:// ni https://).
También deberías revisar la tabla ps_shop_url para asegurarte de que la URL principal y la URL de SSL son correctas. En esta tabla, verás columnas como domain, domain_ssl y physical_uri. Ajusta los valores según sea necesario.
[!TIP]
Si tu tienda usa URLs amigables (SEF URLs), es posible que tengas que regenerarlas. Ve a la administración de tu tienda, en "Parámetros avanzados" > "URLs" y guarda la configuración de nuevo para que se regeneren las reglas de reescritura.
Paso 6: Actualizar la configuración del servidor
Ahora que la base de datos está configurada, es hora de asegurarse de que el nuevo servidor está listo para servir tu tienda correctamente.
Configurar el archivo .htaccess
Si tu tienda usa URLs amigables, PrestaShop genera un archivo .htaccess en la raíz de tu instalación. Este archivo contiene reglas de reescritura que son esenciales para el correcto funcionamiento de las URLs.
Después de la migración, es posible que necesites regenerar este archivo. La forma más sencilla es entrar en el panel de administración de PrestaShop, ir a "Parámetros avanzados" > "URLs" y hacer clic en el botón "Guardar". Esto debería regenerar el archivo .htaccess automáticamente.
Si no puedes acceder al panel de administración, puedes crear un archivo .htaccess vacío en la raíz de tu instalación y luego intentar acceder. PrestaShop lo regenerará si es necesario.
Configurar PHP y el servidor web
Asegúrate de que la versión de PHP en tu nuevo servidor es compatible con tu versión de PrestaShop. En cPanel, puedes cambiar la versión de PHP desde "Select PHP Version" en la sección "Software". En Plesk, puedes hacerlo desde "PHP Settings" dentro de las opciones del dominio.
También es recomendable aumentar los límites de memoria y el tamaño máximo de subida de archivos si es necesario. Estos ajustes se hacen en el archivo php.ini o desde el panel de control.
Paso 7: Probar la tienda y solucionar problemas comunes
Una vez que todo está en su lugar, es hora de probar tu tienda. Accede a tu dominio desde un navegador y comprueba que la página principal carga correctamente. Después, navega por algunas categorías, productos y realiza una prueba de compra (puedes usar el modo de pago en efectivo para no realizar un pago real).
Si encuentras errores, aquí tienes los más comunes y sus soluciones:
Error de conexión a la base de datos
Si ves un mensaje como "Error de conexión a la base de datos", revisa el archivo settings.inc.php y asegúrate de que los datos de conexión son correctos. También verifica que el usuario de la base de datos tiene todos los privilegios sobre la base de datos.
Error 500 (Internal Server Error)
Este error puede deberse a un problema con el archivo .htaccess o con los permisos de archivos. Prueba a renombrar el archivo .htaccess a .htaccess.bak y vuelve a intentarlo. Si funciona, tendrás que regenerar el archivo desde el panel de administración.
Página en blanco
Una página en blanco suele indicar un error de PHP. Activa el modo de depuración de PrestaShop editando el archivo config/defines.inc.php y cambiando _PS_MODE_DEV_ a true. Esto mostrará los errores en pantalla, lo que te ayudará a identificar el problema.
Imágenes rotas
Si las imágenes no se muestran, asegúrate de que la carpeta img tiene los permisos correctos (755 para directorios y 644 para archivos). También puedes regenerar las miniaturas desde "Parámetros avanzados" > "Rendimiento" y haciendo clic en "Regenerar miniaturas".
Paso 8: Actualizar el DNS y completar la migración
Si has migrado tu tienda a un nuevo servidor con un dominio que ya estaba en uso, tendrás que actualizar los servidores DNS para que apunten al nuevo hosting. Este proceso puede tardar entre 24 y 48 horas en propagarse completamente, así que es normal que durante ese tiempo veas la tienda tanto en el servidor antiguo como en el nuevo.
Mientras esperas a que se propague el DNS, puedes configurar un archivo de hosts en tu ordenador para probar la tienda en el nuevo servidor sin afectar a los visitantes. Esto te permite verificar que todo funciona antes de que el tráfico real llegue al nuevo servidor.
Preguntas frecuentes sobre la migración de PrestaShop
¿Puedo migrar PrestaShop sin perder datos?
Sí, la migración de PrestaShop no debería provocar pérdida de datos si realizas una copia de seguridad completa de la base de datos y los archivos, y los restauras correctamente en el nuevo servidor. Es importante seguir todos los pasos y verificar que los datos se han importado correctamente.
¿Cuánto tarda una migración de PrestaShop?
El tiempo de migración depende de varios factores, como el tamaño de tu tienda, el número de archivos y la velocidad de tu conexión a internet. En general, una tienda pequeña puede migrarse en menos de una hora, mientras que una tienda grande con muchos productos e imágenes puede tardar varias horas.
¿Qué es el cambio de servidor PrestaShop?
El cambio de servidor PrestaShop es el proceso de mover tu tienda online de un hosting a otro. Esto puede ser necesario por diversas razones, como mejorar el rendimiento, obtener más recursos, cambiar de proveedor o pasar de un servidor compartido a un VPS o dedicado.
¿Es necesario contratar un profesional para la migración PrestaShop cPanel?
No necesariamente. Si sigues esta guía y tienes un poco de paciencia, puedes realizar la migración PrestaShop cPanel tú mismo. Sin embargo, si tu tienda es muy compleja, tiene muchos módulos personalizados o no te sientes seguro, puede ser una buena idea contratar a un profesional para evitar errores que puedan causar tiempo de inactividad.
¿Qué hago si mi tienda no funciona después de la migración?
Lo primero es mantener la calma y revisar los pasos uno por uno. Comprueba que los archivos están en la carpeta correcta, que la base de datos se ha importado correctamente y que el archivo settings.inc.php tiene los datos correctos. Activa el modo de depuración para ver los errores y busca soluciones en los foros de PrestaShop o en la documentación oficial.
¿Puedo cambiar el nombre de dominio durante la migración?
Sí, puedes cambiar el nombre de dominio durante la migración, pero tendrás que ajustar la configuración en la base de datos (en las tablas ps_configuration y ps_shop_url) como se explica en el Paso 5. También es importante que el nuevo dominio esté apuntando al nuevo servidor antes de comenzar.
Consejos finales para una migración exitosa
La migración de PrestaShop no tiene por qué ser un dolor de cabeza si sigues estos consejos:
- Haz siempre una copia de seguridad antes de empezar cualquier cambio, tanto en el servidor antiguo como en el nuevo.
- Anota todas las configuraciones de tu tienda actual, como versiones de PHP, módulos instalados y ajustes personalizados.
- Realiza la migración en un momento de bajo tráfico para minimizar el impacto en tus clientes.
- Prueba todo a fondo antes de cambiar el DNS, incluyendo la pasarela de pago y el envío de correos electrónicos.
