Solución a errores comunes en PrestaShop: Guía rápida para SysAdmin
Introducción: Cuando tu tienda PrestaShop se convierte en un dolor de cabeza
Si gestionas un servidor con PrestaShop, sabes que la plataforma es potente, pero no está exenta de problemas. Desde una pantalla en blanco hasta errores de conexión a la base de datos, los errores PrestaShop pueden detener tus ventas y frustrar a tus clientes. Esta guía está diseñada para sysadmins (o para ti, que estás aprendiendo) que necesitan solucionar PrestaShop de forma rápida y eficiente. Aquí encontrarás las soluciones más comunes, explicadas paso a paso, sin tecnicismos innecesarios.
Vamos a resolver esos PrestaShop problemas que más aparecen en foros y soporte técnico. Prepárate para tomar el control de tu servidor.
## 1. El temido "Error 500: Internal Server Error" o pantalla en blanco
Este es, sin duda, uno de los errores PrestaShop más comunes. La tienda no carga, solo ves una página en blanco o un error 500. La causa suele ser un problema de permisos, un módulo conflictivo o un límite de memoria excedido.
### ¿Por qué ocurre?
- Permisos de archivos incorrectos: PrestaShop necesita permisos específicos para leer y escribir archivos.
- Módulo o tema defectuoso: Una actualización o instalación reciente puede romper la compatibilidad.
- Límite de memoria PHP insuficiente: La tienda necesita más memoria de la que el servidor le asigna.
- Archivo .htaccess corrupto: Un cambio mal hecho en la configuración del servidor web.
### ¿Cómo solucionarlo?
Sigue estos pasos en orden. No los saltes, son la clave para solucionar PrestaShop rápidamente.
-
Habilita la visualización de errores (temporalmente):
- Accede a tu servidor por SSH (o al panel de control de tu hosting).
- Abre el archivo
/config/defines.inc.phpde tu instalación de PrestaShop. - Busca la línea:
define('_PS_MODE_DEV_', false); - Cámbiala a:
define('_PS_MODE_DEV_', true); - Guarda el archivo. Ahora, al recargar la tienda, verás un mensaje de error específico (por ejemplo, "Fatal error: Allowed memory size..."). Esto te dará la pista exacta.
- Recuerda: Una vez solucionado, vuelve a poner
falsepara no mostrar información sensible a los usuarios.
-
Aumenta el límite de memoria PHP:
- Si el error dice algo sobre "memory size", edita el archivo
php.inide tu servidor. Si usas Syspanel (HestiaCP), accede a través del puerto 2106 (ejemplo:https://tudominio.com:2106), ve a la sección de PHP y edita el archivo de configuración de la versión que uses. - Busca
memory_limity cámbialo a un valor mayor, por ejemplo:memory_limit = 256Mo incluso512M. - Guarda y reinicia el servicio PHP (o el servidor web) desde el panel.
- Si el error dice algo sobre "memory size", edita el archivo
-
Revisa los permisos de archivos y carpetas:
- Conéctate por SSH y ejecuta estos comandos desde la raíz de tu tienda:
find . -type f -exec chmod 644 {} \; find . -type d -exec chmod 755 {} \; chmod 777 -R var/cache var/log config themes/default-bootstrap/img/ upload/ - Esto da los permisos adecuados. El último comando da permisos de escritura a las carpetas de caché, logs y configuraciones.
- Conéctate por SSH y ejecuta estos comandos desde la raíz de tu tienda:
-
Desactiva módulos y temas sospechosos:
- Si no puedes acceder al back office, renombra la carpeta
modulesamodules_old(por ejemplo,mv modules modules_old). Luego crea una carpetamodulesvacía. Si la tienda carga, el problema es un módulo. - Ve agregando módulos de uno en uno desde el back office para identificar el culpable.
- Para el tema, renombra la carpeta
themes(ejemplo:mv themes themes_old) y crea una nuevathemescon el tema por defecto de PrestaShop.
- Si no puedes acceder al back office, renombra la carpeta
-
Regenera el archivo .htaccess:
- Ve al back office de PrestaShop (si puedes acceder) o elimina el archivo
.htaccessdesde el servidor y luego regenéralo desde el panel de configuración de SEO y URL.
- Ve al back office de PrestaShop (si puedes acceder) o elimina el archivo
[TIP]: Si usas Syspanel (puerto 2106), puedes usar su gestor de archivos para editar los archivos de configuración sin necesidad de SSH.
## 2. Error de conexión a la base de datos: "Cannot connect to the database"
Este error aparece cuando PrestaShop no puede comunicarse con MySQL/MariaDB. Puede ser por un cambio de contraseña, un servidor caído o un archivo de configuración corrupto.
### Causas comunes
- Credenciales incorrectas: La contraseña o el usuario en el archivo
config/settings.inc.phpno coinciden con los de la base de datos. - Servidor de base de datos caído: El servicio MySQL no está corriendo.
- Host de base de datos equivocado: A veces el host no es
localhostsino una IP o un socket.
### Pasos para resolverlo
-
Verifica que MySQL esté funcionando:
- Desde SSH, ejecuta:
systemctl status mysqloservice mysql status. Si no está activo, inícialo consystemctl start mysql(oservice mysql start). - En Syspanel (puerto 2106), puedes ver el estado de los servicios en la sección "Servicios" y reiniciarlos.
- Desde SSH, ejecuta:
-
Revisa las credenciales en settings.inc.php:
- Abre el archivo
config/settings.inc.phpcon un editor. - Busca las líneas:
define('_DB_SERVER_', 'localhost'); define('_DB_NAME_', 'nombre_base'); define('_DB_USER_', 'usuario_base'); define('_DB_PASSWD_', 'contraseña'); - Asegúrate de que coincidan exactamente con los datos de tu base de datos. Si no recuerdas la contraseña, puedes cambiarla desde Syspanel o MySQL.
- Abre el archivo
-
Prueba la conexión manualmente:
- Desde SSH, intenta conectar:
mysql -u usuario_base -p -h localhost nombre_base. Si te da error, el problema está en la base de datos, no en PrestaShop.
- Desde SSH, intenta conectar:
-
Repara la base de datos (si está corrupta):
- Accede a MySQL:
mysql -u root -p - Ejecuta:
REPAIR TABLE nombre_tabla;(puedes reparar todas las tablas de una base de datos con herramientas como phpMyAdmin o usando el comandomysqlcheck).
- Accede a MySQL:
[WARNING]: Nunca edites settings.inc.php mientras la tienda esté en producción sin hacer una copia de seguridad. Un error puede dejar tu tienda inaccesible.
## 3. Errores de caché y rendimiento: "Cache is not working" o tienda lenta
PrestaShop usa varios niveles de caché. Si no se configura bien, puede ralentizar la tienda o mostrar contenido desactualizado.
### Problemas típicos
- Caché de Smarty corrupta: Archivos temporales que se acumulan y causan conflictos.
- Caché de MySQL no optimizada: Consultas lentas que saturan el servidor.
- Módulos de caché conflictivos: Usar varios módulos de caché a la vez.
### Solución paso a paso
-
Limpia la caché de Smarty manualmente:
- Elimina el contenido de la carpeta
var/cache(ocache/smartyen versiones antiguas). Puedes hacerlo desde el panel de administración de PrestaShop (Parámetros avanzados > Rendimiento > Limpiar caché) o desde el servidor:rm -rf var/cache/*.
- Elimina el contenido de la carpeta
-
Configura la caché correctamente:
- En el back office, ve a Parámetros avanzados > Rendimiento.
- Activa la caché (recomendado: "Cache de archivos" o "Memcached" si tienes experiencia).
- Desactiva la compilación de plantillas en modo "No compilar" (para entornos de producción) o "Compilar si los archivos de plantilla han sido modificados" (para desarrollo).
-
Optimiza la base de datos:
- Instala un módulo de optimización de base de datos (como el que viene incluido en PrestaShop) o usa phpMyAdmin para ejecutar
OPTIMIZE TABLEen todas las tablas. - Programa tareas cron para limpiar la caché y optimizar la base de datos periódicamente.
- Instala un módulo de optimización de base de datos (como el que viene incluido en PrestaShop) o usa phpMyAdmin para ejecutar
-
Revisa los logs de errores:
- Los logs de PrestaShop están en la carpeta
var/logs. Si ves errores relacionados con caché, es posible que un módulo esté mal escrito.
- Los logs de PrestaShop están en la carpeta
[INFO]: Si tu servidor tiene poca RAM, evita usar Memcached. PrestaShop con caché de archivos es más estable en servidores compartidos o VPS pequeños.
## 4. Problemas con módulos y actualizaciones: "Módulo incompatible" o "Error al actualizar"
Actualizar PrestaShop o instalar un módulo puede romper la tienda. Es uno de los PrestaShop problemas más frustrantes.
### Causas
- Versión de PHP incorrecta: Algunos módulos requieren PHP 7.4 o superior, mientras que otros solo funcionan con PHP 5.6.
- Dependencias faltantes: El módulo necesita librerías o extensiones PHP que no están instaladas.
- Conflictos entre módulos: Dos módulos intentan hacer lo mismo.
### Cómo solucionarlo
-
Verifica la versión de PHP:
- Desde el back office: Parámetros avanzados > Información del sistema. Allí verás la versión de PHP.
- Si tu módulo requiere una versión específica, cambia la versión de PHP desde Syspanel (puerto 2106) en la sección de PHP. Puedes tener varias versiones instaladas y asignar una a tu sitio.
-
Desactiva todos los módulos no esenciales:
- Ve a Módulos > Gestor de módulos y desactiva todos excepto los oficiales de PrestaShop. Luego activa el módulo problemático. Si funciona, activa los demás de uno en uno.
-
Reinstala el módulo manualmente:
- Descarga el módulo desde la fuente oficial.
- Elimina la carpeta del módulo en
modules/y súbela de nuevo por FTP o desde el gestor de archivos de Syspanel. - Instálalo desde el back office.
-
Actualiza PrestaShop paso a paso:
- Nunca saltes versiones. Si estás en 1.6, actualiza a 1.7.0, luego a 1.7.1, etc. (aunque esto puede ser tedioso, es más seguro).
- Usa el asistente de actualización de PrestaShop (módulo "1-Click Upgrade") solo si tienes una copia de seguridad completa.
[WARNING]: Siempre haz una copia de seguridad completa (archivos + base de datos) antes de cualquier actualización o instalación de módulos. Un backup es tu mejor amigo.
## 5. Errores de URL y redirecciones: "Página no encontrada" o "Redireccionamiento en bucle"
Los problemas con las URL suelen aparecer después de mover la tienda a un nuevo dominio, cambiar la configuración de SEO o instalar un certificado SSL.
### Causas
- URL base incorrecta en la configuración.
- Archivo .htaccess mal configurado.
- Redirecciones forzadas a HTTPS sin tener SSL bien instalado.
### Solución
-
Corrige la URL base:
- En el back office: Parámetros de la tienda > Tráfico y SEO > Configuración de SEO y URL. Asegúrate de que la URL base sea correcta (con o sin www, con https:// si tienes SSL).
-
Regenera el .htaccess:
- En la misma sección, haz clic en "Guardar" (aunque no hayas cambiado nada). Esto regenera el archivo .htaccess automáticamente.
-
Verifica la redirección HTTPS:
- Si tienes SSL, asegúrate de que en el archivo
config/settings.inc.phpno haya una redirección forzada a HTTP. Puedes forzar HTTPS desde el back office o editando el .htaccess.
- Si tienes SSL, asegúrate de que en el archivo
-
Limpia la caché del navegador y del servidor:
- A veces el navegador guarda redirecciones antiguas. Prueba en modo incógnito o con otro navegador.
[TIP]: Si usas Syspanel, puedes forzar HTTPS desde la configuración del dominio (sección "SSL/TLS"). Asegúrate de que el certificado esté activo.
## Conclusión: Prevención y buenas prácticas
Resolver errores PrestaShop es parte del día a día de un sysadmin, pero muchas veces se pueden evitar. Aquí tienes un checklist para mantener tu tienda saludable:
- Mantén todo actualizado: PHP, PrestaShop, módulos y temas. Pero siempre con copias de seguridad.
- Monitorea los logs: Revisa semanalmente los logs de errores de tu servidor y de PrestaShop.
- Usa un entorno de pruebas: Antes de aplicar cambios en producción, prueba en un subdominio o localmente.
- Configura la caché correctamente: Una mala configuración puede hacer más daño que bien.
- Documenta cada cambio: Anota qué módulos instalas, qué configuraciones cambias y por qué.
Esperamos que esta guía te haya ayudado a solucionar PrestaShop de forma rápida. Recuerda, la paciencia y el orden son clave. Si el error persiste, busca en la documentación oficial de PrestaShop o en foros especializados, pero siempre con la información que aquí te hemos dado.
¿Tienes algún otro error recurrente? Déjalo en los comentarios (si tu blog lo permite) y lo añadiremos a futuras actualizaciones. ¡Buena suerte con tu tienda!
