Solución de errores comunes al migrar PrestaShop a DirectAdmin
Introducción: Por qué surgen errores al migrar tu tienda PrestaShop
Migrar una tienda PrestaShop a un nuevo servidor es un proceso delicado. Aunque DirectAdmin es un panel de control potente y fiable, los cambios de entorno (PHP, base de datos, permisos de archivos) suelen provocar errores que pueden dejar tu tienda inaccesible o con fallos visuales. No te preocupes: la mayoría de estos problemas tienen una solución clara y paso a paso. En esta guía, vamos a recorrer los errores más comunes al migrar PrestaShop DirectAdmin y te explicaré cómo resolverlos tú mismo, sin necesitar un desarrollador.
Si estás leyendo esto, probablemente ya has subido tus archivos y base de datos a DirectAdmin, pero algo no funciona. Vamos a ello.
## Error 1: Pantalla en blanco (White Screen of Death)
La temida pantalla en blanco es uno de los errores PrestaShop DirectAdmin más frecuentes. Ocurre porque PHP no puede ejecutar el código o porque hay un conflicto de memoria.
### ¿Qué lo causa?
- Límite de memoria PHP insuficiente.
- Módulo o tema incompatible con la versión de PHP.
- Archivos corruptos durante la transferencia.
### Solución paso a paso
- Aumenta el límite de memoria PHP: En DirectAdmin, ve a Cuenta de usuario > Configuración PHP > Select PHP version. Busca
memory_limity cámbialo a256Mo512M. Guarda los cambios. - Activa la visualización de errores: Temporalmente, edita el archivo
/config/defines.inc.phpde PrestaShop. Buscadefine('_PS_MODE_DEV_', false);y cámbialo adefine('_PS_MODE_DEV_', true);. Esto mostrará el error exacto en lugar de la pantalla en blanco. - Verifica la versión de PHP: PrestaShop 1.7 requiere PHP 7.1 o superior, y la 8.x necesita versiones específicas. En DirectAdmin, ve a PHP Selector y elige una versión compatible (por ejemplo, 7.4 o 8.0).
- Revisa los permisos de archivos: DirectAdmin puede tener permisos incorrectos. Conéctate por FTP o SSH y ejecuta:
find . -type f -exec chmod 644 {} \; find . -type d -exec chmod 755 {} \; chmod 777 -R var/cache config/themes
[TIP] Si el error persiste, desactiva todos los módulos de terceros temporalmente renombrando la carpeta
/modulesa/modules_old. Luego ve a/admin1234/index.php(ajusta la carpeta admin) y reactívalos uno a uno.
## Error 2: Error de conexión a la base de datos
Cuando ves "Cannot connect to database" o "Error de conexión a la base de datos", significa que los datos de conexión no coinciden con los de DirectAdmin.
### Solución
- Crea una base de datos en DirectAdmin: Ve a Base de Datos MySQL > Crear nueva base de datos. Anota el nombre, usuario y contraseña.
- Importa tu base de datos: Usa phpMyAdmin (en DirectAdmin, Base de Datos MySQL > phpMyAdmin). Selecciona la base de datos, ve a Importar y sube tu archivo
.sql. - Actualiza el archivo de configuración: Edita
/app/config/parameters.phpcon los nuevos datos:'database_host' => 'localhost', 'database_name' => 'tu_usuario_tienda', 'database_user' => 'tu_usuario_tienda', 'database_password' => 'tu_contraseña', - Verifica el prefijo de tablas: Si tu base de datos original usaba un prefijo (ej.
ps_), asegúrate de que enparameters.phpesté correcto:'database_prefix' => 'ps_'.
[WARNING] No uses el usuario root de MySQL. DirectAdmin asigna usuarios con el prefijo de tu cuenta (ej.
usuario1_tienda). Si copias los datos exactos de otro servidor, cámbialos.
## Error 3: Errores 500 Internal Server Error
Un error 500 suele deberse a un archivo .htaccess mal configurado o a módulos de Apache desactivados.
### Solución
- Renombra temporalmente el .htaccess: Conéctate por FTP, localiza el archivo
.htaccessen la raíz de PrestaShop y renómbralo a.htaccess_old. Recarga la tienda. Si funciona, el problema está ahí. - Regenera el .htaccess desde el panel de administración: Ve a Configuración > SEO y URLs > Configurar URLs amigables y haz clic en Guardar (sin cambiar nada). Esto regenera el archivo.
- Habilita mod_rewrite en DirectAdmin: Ve a Configuración PHP > Apache Modules y asegúrate de que
mod_rewriteesté marcado. - Aumenta el límite de ejecución: En Configuración PHP, cambia
max_execution_timea300.
[INFO] Si tu servidor usa Apache con Nginx como proxy (algo común en DirectAdmin), el .htaccess no siempre funciona. En ese caso, debes configurar las reglas en el panel de DirectAdmin: Dominios > Configuración de Nginx y añadir las reglas de reescritura de PrestaShop.
## Error 4: Imágenes rotas o que no cargan
Las imágenes de productos, categorías o temas aparecen como iconos rotos. Esto es típico tras una DirectAdmin PrestaShop migración porque las rutas o los permisos no se actualizan.
### Solución
- Reconstruye el índice de imágenes: En el panel de administración, ve a Mejorar > Imágenes > Regenerar miniaturas. Selecciona todas las opciones y ejecuta.
- Verifica los permisos de la carpeta de imágenes: Ejecuta en SSH o FTP:
chmod 777 -R img/ - Actualiza las rutas en la base de datos: Si cambiaste de dominio o subcarpeta, ejecuta esta consulta SQL en phpMyAdmin:
ReemplazaUPDATE ps_shop_url SET domain='tunuevodominio.com', domain_ssl='tunuevodominio.com';ps_por tu prefijo de tablas.
[TIP] Después de regenerar imágenes, limpia la caché de PrestaShop: Configuración > Rendimiento > Limpiar caché.
## Error 5: El módulo de pago o envío no funciona
Los módulos que dependen de APIs externas (PayPal, Stripe, etc.) pueden fallar si la IP del servidor cambia o si las URLs de retorno no se actualizan.
### Solución
- Actualiza las URLs en los módulos: Ve a Módulos > Gestor de módulos, busca el módulo de pago y en su configuración cambia las URLs de notificación por las de tu nuevo dominio.
- Verifica los permisos de los módulos: Algunos módulos necesitan escribir en carpetas. Asegúrate de que
/modules/nombre_del_modulo/tenga permisos 755. - Reinstala el módulo: Si nada funciona, desinstálalo y vuelve a instalarlo. Esto regenera sus tablas en la base de datos.
[WARNING] No borres los datos de configuración del módulo a menos que estés seguro. Mejor haz una copia de seguridad de la tabla
ps_configurationantes.
## Error 6: Problemas con la caché y el rendimiento
Después de la migración, la tienda puede ir muy lenta o mostrar contenido desactualizado. Esto se debe a que la caché de PrestaShop y de DirectAdmin no se ha limpiado.
### Solución
- Limpia la caché de PrestaShop: En el panel de administración: Configuración > Rendimiento > Limpiar caché (tanto de Smarty como de la caché de opciones).
- Limpia la caché de DirectAdmin: Ve a Cuenta de usuario > Gestor de caché y marca todas las opciones (Apache, PHP, etc.). Haz clic en Limpiar caché.
- Desactiva la caché temporalmente: Si el problema persiste, en Rendimiento desactiva la caché de Smarty y la de opciones. Luego vuelve a activarlas una por una para identificar el conflicto.
- Verifica la configuración de PHP OPcache: En Configuración PHP > PHP Extensions, asegúrate de que
opcacheesté activado y configúralo conopcache.revalidate_freq=2.
[INFO] Si migraste desde un servidor con Syspanel (HestiaCP, puerto 2106), es posible que la caché de opcache estuviera configurada de forma distinta. En DirectAdmin, los valores por defecto suelen ser más restrictivos. Ajústalos según necesites.
## Error 7: URLs amigables que no funcionan
Las URLs del tipo tutienda.com/producto/123-nombre devuelven un error 404 tras la migración.
### Solución
- Regenera las URLs amigables: En el panel de administración: Configuración > SEO y URLs > Configurar URLs amigables. Desactívalas, guarda, actívalas de nuevo y guarda otra vez.
- Actualiza el .htaccess: Como vimos en el error 3, renómbralo y luego regenéralo desde el panel.
- Verifica la configuración de Nginx: Si usas Nginx como proxy inverso, añade estas reglas en Dominios > Configuración de Nginx:
location / { try_files $uri $uri/ /index.php?$args; } - Comprueba la tabla ps_meta: En phpMyAdmin, ejecuta:
DELETE FROM ps_meta WHERE page LIKE '%404%';
## Error 8: El panel de administración no carga o da error de token
A veces, después de la migración, el acceso al back-office (ejemplo: tutienda.com/admin1234) no funciona o muestra "Invalid token".
### Solución
- Borra la carpeta de caché del admin: Conéctate por FTP y elimina el contenido de
/var/cache/(tantodevcomoprod). - Regenera el token de seguridad: En la base de datos, busca la tabla
ps_configurationy elimina las filas con nombrePS_TOKEN(pueden ser varias). Luego, al acceder al admin, se generarán automáticamente. - Verifica la carpeta admin: Asegúrate de que la carpeta del panel de administración tenga el mismo nombre que en tu instalación original. Si la cambiaste, actualiza la ruta en
parameters.php.
[TIP] Si el problema persiste, accede al admin usando
tutienda.com/admin1234/index.php?controller=AdminLogin&token=TU_TOKEN. Puedes obtener el token desde la base de datos enps_employee(campotoken).
## Error 9: Problemas con SSL/HTTPS
Tu tienda carga en HTTP pero no en HTTPS, o muestra advertencias de contenido mixto.
### Solución
- Activa SSL en DirectAdmin: Ve a Dominios > SSL Certificates y asegúrate de que tu certificado esté instalado. Si usas Let's Encrypt, actívalo desde SSL > Let's Encrypt.
- Configura PrestaShop para usar HTTPS: En el panel de administración: Configuración > General > Habilitar SSL y Habilitar SSL en todas las páginas.
- Actualiza las URLs en la base de datos: Ejecuta en phpMyAdmin:
UPDATE ps_configuration SET value='1' WHERE name='PS_SSL_ENABLED'; UPDATE ps_configuration SET value='1' WHERE name='PS_SSL_ENABLED_EVERYWHERE'; - Corrige contenido mixto: Usa un plugin como "Really Simple SSL" o busca en la base de datos URLs HTTP y cámbialas a HTTPS:
UPDATE ps_product SET description = REPLACE(description, 'http://', 'https://');
[WARNING] Después de activar SSL, limpia la caché del navegador y de PrestaShop. Si ves el candado roto, revisa que todas las imágenes y scripts se carguen por HTTPS.
## Preguntas frecuentes (FAQ)
### ¿Qué hago si después de la migración veo un error de "Class not found"?
Esto indica que PHP no encuentra una clase de un módulo o del núcleo. Primero, verifica que la versión de PHP sea compatible. Luego, reinstala el módulo problemático. Si el error es de una clase del núcleo (ej. Shop), puede que la migración no haya copiado todos los archivos. Vuelve a subir los archivos de PrestaShop (excepto la carpeta img y modules para no sobrescribir configuraciones).
### ¿Cómo puedo saber si mi base de datos se importó correctamente?
En DirectAdmin, ve a Base de Datos MySQL > phpMyAdmin. Selecciona tu base de datos y revisa que todas las tablas estén presentes (normalmente más de 200 para PrestaShop 1.7). También puedes ejecutar una consulta simple como SELECT * FROM ps_shop_url; para ver si los datos están ahí.
### ¿Es necesario cambiar los permisos de archivos en DirectAdmin?
Sí, es uno de los pasos más olvidados. PrestaShop necesita que ciertas carpetas tengan permisos de escritura (777) temporalmente para la caché, imágenes y módulos. Después de la migración, puedes dejarlos en 755 para mayor seguridad, excepto var/cache y img que deben seguir siendo 777.
### ¿Puedo migrar PrestaShop sin tener acceso SSH?
Sí, puedes hacerlo todo por FTP y phpMyAdmin. Sin embargo, SSH facilita la corrección de permisos y la ejecución de comandos. Si no tienes SSH, usa un cliente FTP como FileZilla para cambiar permisos (clic derecho > Permisos de archivo).
### ¿Qué hago si la migración desde Syspanel (HestiaCP) a DirectAdmin da errores de base de datos?
Syspanel (HestiaCP) y DirectAdmin usan diferentes versiones de MySQL/MariaDB a veces. Si tu base de datos no se importa, verifica la versión de MySQL en DirectAdmin (en PHP Info). Si es muy diferente, exporta tu base de datos desde Syspanel con compatibilidad (ej. usando mysqldump --compatible=mysql40). Luego, en DirectAdmin, crea una nueva base de datos con la misma codificación (utf8_general_ci) e importa.
[INFO] Recuerda que el puerto de acceso a Syspanel (HestiaCP) es el 2106. Si tienes dudas sobre la configuración de tu antiguo servidor, consulta la documentación de HestiaCP.
## Conclusión: La paciencia y el orden son clave
Migrar PrestaShop a DirectAdmin no tiene por qué ser una pesadilla. Siguiendo estos pasos para solucionar problemas PrestaShop, la mayoría de los errores se resuelven en minutos. Recuerda:
- Siempre haz una copia de seguridad completa antes de empezar.
- Anota los cambios que hagas (versión de PHP, permisos, etc.).
- Si te atascas, los foros de PrestaShop y la comunidad de DirectAdmin son excelentes recursos.
Espero que esta guía te haya sido útil. Si encuentras un error que no cubrimos, ¡compártelo en los comentarios para ayudarnos a mejorar!
