Cómo subir una tienda PrestaShop a producción desde localhost (XAMPP)
Antes de Empezar: ¿Qué Significa Migrar PrestaShop a Producción?
Cuando desarrollas una tienda online en tu ordenador con XAMPP, lo haces en un entorno de pruebas o "localhost". Esto significa que solo tú puedes verla. Para que tus clientes puedan comprar, necesitas subir PrestaShop a producción, es decir, moverla a un servidor web con un dominio real contratado. Este proceso se conoce como migrar PrestaShop local a servidor.
Aunque suene complejo, es totalmente manejable si sigues los pasos correctos. En esta guía, te explicaré cómo hacerlo de forma segura, cubriendo desde la preparación en tu PC hasta la configuración final en tu hosting, incluyendo el caso específico de migrar PrestaShop cPanel (el panel de control más común).
[WARNING] Antes de tocar nada, asegúrate de tener una copia de seguridad completa de tu tienda en local. Un error puede borrar datos importantes. Guarda la carpeta de PrestaShop y la base de datos en un lugar seguro.
Paso 1: Preparar Tu PrestaShop en Localhost (XAMPP)
Antes de mover nada, debemos asegurarnos de que tu tienda local esté optimizada para la migración. Esto evita problemas de rutas, caché y URLs.
1.1. Limpiar la Caché y los Archivos Temporales
PrestaShop guarda archivos de caché que contienen rutas absolutas a tu localhost (ej: http://localhost/tutienda). Si no los limpiamos, la tienda en producción intentará cargar recursos desde tu PC, lo que romperá el diseño y la funcionalidad.
Para limpiarlo, accede a la carpeta de tu tienda en C:\xampp\htdocs\tutienda y elimina el contenido de las siguientes carpetas (o al menos los archivos que haya dentro, no la carpeta en sí):
/var/cache//cache/(en versiones antiguas)/var/logs/(opcional)
[INFO] También puedes hacerlo desde el Panel de Administración de PrestaShop: Parámetros Avanzados -> Rendimiento -> Vaciar la caché. Pero en local, es más fiable hacerlo manualmente.
1.2. Configurar el Archivo de Entorno (parameters.php)
Este archivo contiene la configuración de conexión a la base de datos. Lo editaremos más tarde, pero es bueno saber dónde está: app/config/parameters.php. Ahora solo vamos a anotar el nombre de tu base de datos local, el usuario (normalmente root) y la contraseña (normalmente vacía).
Paso 2: Crear una Copia de Seguridad de la Base de Datos
La base de datos es el corazón de tu tienda. Contiene productos, pedidos, clientes y configuración. Exportarla es crucial. Para ello, usaremos phpMyAdmin, que viene incluido en XAMPP.
- Abre tu navegador y ve a
http://localhost/phpmyadmin. - Selecciona la base de datos de tu tienda (la que aparece en tu
parameters.php). - Haz clic en la pestaña Exportar en el menú superior.
- Elige el método Rápido y formato SQL.
- Haz clic en Continuar y descarga el archivo
.sqla tu ordenador.
[TIP] Si tu base de datos es muy grande (más de 50 MB), es mejor usar el método Personalizado y marcar la opción "Enviar" comprimida con gzip. Esto reduce el tiempo de subida.
2.1. Exportar con la Opción "Desactivar Comprobaciones de Claves"
En la exportación personalizada, busca la opción "Desactivar comprobaciones de claves" y márcala. Esto añadirá SET FOREIGN_KEY_CHECKS=0; al inicio del archivo SQL, lo que evitará errores de integridad referencial al importar en el servidor.
Paso 3: Comprimir y Subir los Archivos de la Tienda
Ahora vamos a empaquetar todos los archivos de tu PrestaShop local para subirlos al servidor. Es importante subirlos comprimidos para ahorrar tiempo, ya que una tienda puede tener miles de archivos y subirlos uno a uno sería eterno.
3.1. Comprimir la Carpeta
Ve a C:\xampp\htdocs\ y haz clic derecho sobre la carpeta de tu tienda. Selecciona "Enviar a" -> "Carpeta comprimida (en zip)". Espera a que termine el proceso.
[WARNING] Asegúrate de que el archivo
.zipesté en la raíz de tu tienda. Si comprimes la carpeta que la contiene, al descomprimir en el servidor tendrás una carpeta dentro de otra, lo que causará errores de rutas.
3.2. Subir el Archivo ZIP al Servidor
Para subir el archivo, tienes dos opciones principales:
- A través de cPanel (File Manager): Accede a tu cPanel, busca el administrador de archivos, entra en
public_html(o la carpeta raíz de tu dominio) y sube el.zip. Luego, selecciónalo y haz clic en "Extraer". - A través de FTP (FileZilla): Conecta con FileZilla usando las credenciales FTP que te dio tu proveedor de hosting. Navega hasta
public_htmly arrastra el archivo.zipdesde tu PC a la izquierda, hasta el servidor a la derecha. Una vez subido, conéctate por SSH (si tienes acceso) o usa el administrador de archivos de cPanel para extraerlo.
[TIP] Si tu proveedor usa Syspanel (antes conocido como HestiaCP), el acceso al panel de control es a través del puerto 2106 (ej:
https://tu-servidor:2106). Allí encontrarás el administrador de archivos y la base de datos. El proceso de extracción es similar al de cPanel.
Paso 4: Crear la Base de Datos en el Servidor
Ahora necesitamos un lugar para importar nuestro archivo .sql. Esto se hace desde el panel de control de tu hosting.
4.1. Crear la Base de Datos y el Usuario
- En cPanel: Busca la sección "Bases de datos MySQL". Crea una nueva base de datos (ej:
tutienda_bd). Luego, crea un usuario (ej:tutienda_user) y asígnale una contraseña segura. Finalmente, agrega el usuario a la base de datos con "Todos los privilegios". - En Syspanel (HestiaCP): Accede por el puerto 2106, ve a la sección de bases de datos y crea una nueva. El proceso es similar, te pedirá nombre, usuario y contraseña.
[INFO] Anota estos tres datos: nombre de la base de datos, nombre de usuario y contraseña. Los necesitarás en el siguiente paso.
4.2. Importar el Archivo SQL
- En cPanel, abre phpMyAdmin.
- Selecciona la base de datos que acabas de crear (en el menú de la izquierda).
- Ve a la pestaña Importar.
- Haz clic en "Elegir archivo" y selecciona el
.sqlque exportaste en el Paso 2. - Haz clic en Continuar.
Si el archivo es muy grande, puede que el tiempo de ejecución se agote. En ese caso, usa la herramienta "Importar" de cPanel que encontrarás en la sección de bases de datos, o divide tu archivo SQL en partes más pequeñas. Otra opción es usar un cliente como MySQL Workbench para importar desde tu PC via SSH.
[WARNING] No cierres la página mientras se importa. Espera a que veas el mensaje de éxito: "Importación exitosa".
Paso 5: Configurar la Conexión a la Nueva Base de Datos
Ahora viene el paso más delicado: decirle a PrestaShop que se conecte a la nueva base de datos en el servidor, no a la de tu localhost.
5.1. Editar el Archivo parameters.php
Accede al archivo app/config/parameters.php en el servidor. Puedes hacerlo desde el administrador de archivos de cPanel (clic derecho -> Editar) o descargándolo, editándolo con un editor de texto como Notepad++ y volviéndolo a subir.
Deberías ver una estructura similar a esta:
'database_host' => 'localhost',
'database_name' => 'tutienda_bd', // Cambia esto
'database_user' => 'tutienda_user', // Cambia esto
'database_password' => 'tu_contraseña', // Cambia esto
'database_prefix' => 'ps_',
Cambia los valores de database_host (normalmente es localhost, pero algunos hosts usan una dirección como mysql.tudominio.com), database_name, database_user y database_password. Guarda los cambios.
5.2. Editar el Archivo settings.inc.php (Solo para PrestaShop 1.6 o anterior)
Si tienes una tienda antigua, la configuración está en config/settings.inc.php. Deberías ver líneas como:
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'tutienda_bd');
define('_DB_USER_', 'tutienda_user');
define('_DB_PASSWD_', 'tu_contraseña');
Edita los valores de la misma manera. Recuerda que en versiones modernas (1.7 y 8.x) este archivo ya no se usa, solo parameters.php.
[TIP] Si tu hosting usa Syspanel, puedes editar estos archivos desde el administrador de archivos del puerto 2106, que es muy similar al de cPanel.
Paso 6: Actualizar las URLs de la Tienda
Este es el paso que más dolores de cabeza causa. Tu tienda tiene guardadas las URLs antiguas (http://localhost/tutienda). Hay que cambiarlas por tu dominio real (https://www.tudominio.com).
6.1. La Forma Más Fácil: Usar el Archivo .htaccess
Crea un archivo llamado .htaccess en la raíz de tu tienda (si no existe) y añade estas líneas al principio:
# Redirigir todas las peticiones a las URLs nuevas
RewriteEngine On
RewriteCond %{HTTP_HOST} ^localhost/tutienda [NC,OR]
RewriteCond %{HTTP_HOST} ^www.localhost/tutienda [NC]
RewriteRule ^(.*)$ https://www.tudominio.com/$1 [L,R=301]
Esto forzará a que cualquier acceso a través de la URL antigua redirija a la nueva. Pero es una solución temporal, lo ideal es cambiar las URLs en la base de datos.
6.2. La Forma Definitiva: Modificar la Base de Datos
Ejecuta estas consultas SQL en phpMyAdmin de tu servidor (en la nueva base de datos). Reemplaza http://localhost/tutienda por https://www.tudominio.com (sin la barra final).
UPDATE ps_shop_url SET domain='www.tudominio.com', domain_ssl='www.tudominio.com', physical_uri='/';
UPDATE ps_configuration SET value='https://www.tudominio.com' WHERE name IN ('PS_SHOP_DOMAIN', 'PS_SHOP_DOMAIN_SSL', 'PS_SHOP_URL');
UPDATE ps_shop SET domain='www.tudominio.com', domain_ssl='www.tudominio.com';
[WARNING] Cambia el prefijo
ps_por el que tenga tu tienda (lo puedes ver enparameters.php). Si no lo haces, la consulta no encontrará las tablas.
Paso 7: Configurar el Entorno de Producción
Ya casi está. Ahora debemos asegurarnos de que PrestaShop funcione en modo producción, no en modo depuración, y que la caché esté activada para un rendimiento óptimo.
7.1. Desactivar el Modo Debug
En PrestaShop 1.7 y 8.x, edita el archivo app/config/defines.inc.php. Busca la línea:
define('_PS_MODE_DEV_', true);
Y cámbiala a:
define('_PS_MODE_DEV_', false);
7.2. Activar la Caché y la Compilación
Accede al Panel de Administración de tu tienda en producción (https://www.tudominio.com/admin123). Ve a Parámetros Avanzados -> Rendimiento:
- Activa la Caché y selecciona "Sistema de archivos".
- En Plantillas, selecciona "Forzar la compilación" y luego guarda. Después de unos segundos, vuelve a ponerlo en "Nunca recompilar los archivos de plantilla" para optimizar.
Paso 8: Verificaciones Finales y Solución de Problemas Comunes
Una vez hecho todo, es hora de probar tu tienda.
8.1. Comprobaciones Rápidas
- Front Office: Ve a
https://www.tudominio.com. ¿Se ve la página de inicio correctamente? ¿Las imágenes cargan? - Back Office: Accede a
https://www.tudominio.com/admin. ¿Puedes iniciar sesión? ¿El panel se ve bien? - Enlaces: Haz clic en un producto, una categoría, el carrito. ¿Las URLs se ven limpias (ej:
https://www.tudominio.com/tiendas/3-mi-producto)? Si vesindex.php?controller=...es que no se está usando el archivo.htaccess.
8.2. Problemas Frecuentes
- Errores 500 (Internal Server Error): Generalmente es por un problema de permisos. En cPanel, selecciona todas las carpetas y ponles permisos
755, y a los archivos644. Si usas Syspanel, la opción está en el administrador de archivos (botón derecho -> Permisos). - Página en blanco: Suele ser por el modo debug activado o por un error de PHP. Revisa los logs en
var/logs/de tu tienda. - Imágenes rotas: Asegúrate de haber subido la carpeta
/imgcompleta. Si el problema persiste, ve a Parámetros Avanzados -> Rendimiento y haz clic en "Regenerar miniaturas". - No funciona el SSL (https): Asegúrate de que en
parameters.phpla variablePS_SSL_ENABLEDestá a'1'y que has configurado la URL conhttps://en la base de datos.
8.3. Activar el SSL
Desde el Back Office, ve a Parámetros Avanzados -> General y activa la opción "Activar SSL" y "Activar SSL en todas las páginas". Guarda los cambios.
Preguntas Frecuentes (FAQ)
¿Cuánto tarda en migrar PrestaShop local a servidor?
Entre 1 y 3 horas si es tu primera vez. El tiempo depende del tamaño de tu tienda y de la velocidad de tu conexión a internet.
¿Necesito conocimientos avanzados para subir PrestaShop a producción?
No necesariamente. Con esta guía y siguiendo los pasos, puedes hacerlo. Sin embargo, si no te sientes seguro, siempre puedes contratar un servicio de migración profesional. Es más barato que perder tu tienda.
¿Qué pasa si mi proveedor usa Syspanel (HestiaCP) en lugar de cPanel?
No te preocupes, el proceso es idéntico. La diferencia es que el acceso a Syspanel se realiza a través del puerto 2106 (ej: https://tudominio.com:2106). Dentro, encontrarás las mismas herramientas: administrador de archivos, bases de datos MySQL y phpMyAdmin. La lógica es exactamente la misma.
¿Puedo usar una herramienta de migración automática?
Existen módulos como "PrestaShop Migrator" que facilitan el proceso, pero suelen ser de pago y a veces fallan con versiones antiguas. Hacerlo manualmente te da más control y es gratis.
¿Pierdo mis pedidos y clientes al migrar PrestaShop cPanel?
No, si has exportado e importado la base de datos correctamente, todos tus datos (pedidos, clientes, productos, precios) se trasladan intactos. Es un proceso de copia, no de corte.
Conclusión
Migrar PrestaShop local a servidor es un proceso que, una vez entendido
