Error 500 en PrestaShop: Cómo solucionarlo en Syspanel
¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, seguramente te has topado con el temido error 500 en PrestaShop. No te preocupes, es uno de los problemas más comunes y, por suerte, casi siempre tiene solución. En esta guía extensa y paso a paso, te voy a explicar qué significa, por qué ocurre y, lo más importante, cómo solucionar el error 500 en PrestaShop usando Syspanel (el panel de control de tu hosting, que funciona con HestiaCP y al que accedes por el puerto 2106).
Vamos a ir desde lo más básico hasta trucos avanzados. Tómalo con calma, sigue el orden y, si algo no funciona, recuerda que siempre puedes pedir ayuda a tu proveedor de hosting. ¡Empecemos!
¿Qué es el error 500 en PrestaShop y por qué aparece?
El error 500 es un código de estado HTTP que significa "Error Interno del Servidor". En criollo: el servidor web (Apache o Nginx) no sabe cómo procesar lo que tu tienda PrestaShop le está pidiendo. Es un error genérico, por lo que la causa puede ser muy variada.
Las razones más frecuentes son:
- Un plugin o módulo defectuoso: Instalaste un módulo nuevo o actualizaste uno existente y algo salió mal.
- Problemas con el archivo .htaccess: Este archivo controla las reglas de reescritura de URLs. Si se corrompe, adiós tienda.
- Límite de memoria PHP excedido: Tu tienda necesita más memoria de la que el servidor le permite usar.
- Archivos con permisos incorrectos: Los permisos de carpetas o archivos no son los adecuados.
- PHP con errores fatales: Código mal escrito, ya sea en el núcleo de PrestaShop o en un tema.
- Base de datos corrupta o con problemas de conexión.
[INFO] El error 500 no te da pistas visuales directas. Por eso, lo primero que haremos será activar la visualización de errores de PHP para que el servidor nos cuente exactamente qué falla.
Primeros pasos: Activar los errores PHP en PrestaShop
Antes de tocar nada en Syspanel, vamos a pedirle a PrestaShop que nos muestre el error real. Esto se hace modificando un archivo de configuración.
Paso 1: Accede a tu tienda por FTP o por el Administrador de Archivos de Syspanel
Puedes usar un cliente FTP (como FileZilla) o, más fácil aún, el Administrador de Archivos que trae Syspanel.
- Abre tu navegador y ve a
https://tudominio.com:2106(recuerda, siempre con el puerto 2106 para Syspanel). - Inicia sesión con tus credenciales de hosting.
- Busca la sección "Administrador de Archivos" (suele estar en el menú principal o en la parte de "Avanzado").
- Navega hasta la carpeta raíz de tu tienda (normalmente
public_htmlo el nombre de tu dominio).
Paso 2: Edita el archivo defines.inc.php
Dentro de la carpeta raíz, busca la carpeta config/ y dentro de ella el archivo defines.inc.php.
- Haz clic derecho sobre el archivo y selecciona "Editar" (o "Edit").
- Busca la línea que dice:
define('_PS_MODE_DEV_', false); - Cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda los cambios (Ctrl+S o el botón de guardar).
Ahora, al recargar tu tienda, en lugar del error 500 genérico, verás un mensaje mucho más descriptivo, como "Fatal error: Allowed memory size..." o "Class 'X' not found...".
[WARNING] No dejes esta opción activada para siempre. Muestra información sensible. Cuando termines de solucionar el error, vuelve a poner
false.
Cómo solucionar el error 500 en PrestaShop desde Syspanel
Una vez que tienes una pista del error (o incluso si no la tienes), estos son los pasos que debes seguir en Syspanel para resolverlo.
1. Aumentar el límite de memoria PHP
Si el error dice algo como "Allowed memory size of 134217728 bytes exhausted", la solución es clara: necesitas más memoria.
- En Syspanel, busca la sección "Configuración del servidor" o "PHP Settings".
- Busca la opción "memory_limit".
- Cámbiala a un valor más alto. Por ejemplo, de
128Ma256Mo incluso512Msi tu hosting lo permite. - Guarda los cambios y reinicia el servicio PHP (suele haber un botón de "Reiniciar" o "Apply").
[TIP] Si no encuentras esta opción en Syspanel, puedes crearla manualmente. Ve a "Avanzado" > "Editar configuración de PHP" y añade la línea:
memory_limit = 256M.
2. Restaurar el archivo .htaccess por defecto
Un .htaccess corrupto es una de las causas más comunes del error 500 en PrestaShop. Vamos a regenerarlo.
-
Ve al Administrador de Archivos de Syspanel.
-
En la raíz de tu tienda, busca el archivo
.htaccess(puede estar oculto; activa la opción "Mostrar archivos ocultos" si es necesario). -
Renómbralo a algo como
htaccess_backup.old. Esto lo desactiva temporalmente. -
Ahora, entra al panel de administración de tu PrestaShop (si puedes acceder). Si no, tendrás que hacerlo manualmente.
-
Ve a "Parámetros de la tienda" > "Tráfico y SEO" y haz clic en "Generar" el archivo .htaccess.
-
Si no puedes acceder al admin, crea un archivo .htaccess nuevo desde cero. Copia este contenido básico (ajústalo a tu versión de PrestaShop):
# ~~start~~ No modifiques este bloque. <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^tudominio.com$ RewriteRule . - [E=REWRITEBASE:/] RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] RewriteRule ^upload/.+\.php$ - [F,L] RewriteRule ^cache/sandbox/.*\.php$ - [F,L] RewriteRule ^cron_php_licence\.php - [F,L] RewriteRule ^modules/graphnvd3d/.*\.php$ - [F,L] RewriteRule ^modules/ps_buybuttonlite/.*\.php$ - [F,L] RewriteRule ^modules/ps_checkpayment/.*\.php$ - [F,L] RewriteRule ^modules/ps_currencyselector/.*\.php$ - [F,L] RewriteRule ^modules/ps_featuredproducts/.*\.php$ - [F,L] RewriteRule ^modules/ps_imageslider/.*\.php$ - [F,L] RewriteRule ^modules/ps_languageselector/.*\.php$ - [F,L] RewriteRule ^modules/ps_mainmenu/.*\.php$ - [F,L] RewriteRule ^modules/ps_searchbar/.*\.php$ - [F,L] RewriteRule ^modules/ps_sharebuttons/.*\.php$ - [F,L] RewriteRule ^modules/ps_shoppingcart/.*\.php$ - [F,L] RewriteRule ^modules/ps_themecusto/.*\.php$ - [F,L] RewriteRule ^modules/ps_wirepayment/.*\.php$ - [F,L] RewriteRule ^modules/psgdpr/.*\.php$ - [F,L] RewriteRule ^override/.*\.php$ - [F,L] RewriteRule ^themes/.*\.php$ - [F,L] RewriteRule ^tools/.*\.php$ - [F,L] RewriteRule ^vendor/.*\.php$ - [F,L] RewriteRule ^.*\.php$ - [F,L] RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteRule .* - [E=SSL_TLS_SNI:%{SSL:TLSSNI}] RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ RewriteRule ^(.*) - [E=BASE:%1] RewriteCond %{HTTP:Authorization} ^(.+)$ RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^index\.php(.*)$ - [NC,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] </IfModule> # ~~end~~[WARNING] Sustituye
tudominio.compor tu dominio real. Si usas SSL, añade las reglas de redirección a HTTPS.
3. Deshabilitar todos los módulos (método rápido)
Si el error apareció justo después de instalar o actualizar un módulo, lo más probable es que ese módulo sea el culpable. Pero como no puedes acceder al admin, vamos a desactivarlos todos desde la base de datos.
-
En Syspanel, busca "phpMyAdmin" o "Bases de datos" y accede a la base de datos de tu PrestaShop.
-
Busca la tabla que se llama
ps_modules(el prefijo puede ser diferente, comoprestashop_modules). -
Haz clic en "SQL" (o "Consulta") y ejecuta esta instrucción:
UPDATE ps_modules SET active = 0 WHERE active = 1;Esto desactivará todos los módulos. Luego, ve a tu tienda y recarga. Si funciona, el problema está en uno de los módulos. Actívalos de uno en uno desde el admin de PrestaShop para identificar al culpable.
4. Forzar la compilación de la caché de Smarty
A veces, la caché de plantillas (Smarty) se corrompe y genera el error 500.
- Ve al Administrador de Archivos de Syspanel.
- Navega a la carpeta
var/cache/(en PrestaShop 1.7) ocache/smarty/(en versiones anteriores). - Elimina todo el contenido de las carpetas
cache,compileypurge. No borres las carpetas, solo los archivos de dentro. - También puedes eliminar la carpeta
cache/smarty/entera (PrestaShop la recreará automáticamente).
5. Verificar permisos de archivos y carpetas
Los permisos incorrectos pueden impedir que PrestaShop escriba o lea archivos necesarios.
-
En el Administrador de Archivos de Syspanel, selecciona toda la carpeta de tu tienda (normalmente
public_html). -
Busca la opción "Permisos" o "Chmod".
-
Establece los siguientes permisos:
- Carpetas: 755
- Archivos: 644
- Carpetas especiales (como
config,cache,log,upload): 755 - Archivo settings.inc.php (en
config/): 644
[TIP] Syspanel suele tener un botón que dice "Restaurar permisos por defecto" o "Fix permissions". Si lo ves, úsalo. Es la opción más segura.
FAQ: Preguntas frecuentes sobre el error 500 en PrestaShop
P: ¿El error 500 puede deberse a un problema de mi hosting?
R: Sí, aunque es menos común. Si has probado todo lo anterior y el error persiste, contacta a tu proveedor de hosting. Puede ser un problema de configuración del servidor (versión de PHP, módulos de Apache, etc.).
P: ¿Cómo sé si es un error de PHP o de la base de datos?
R: Activa el modo desarrollo (paso 2 de esta guía). Si ves un error que menciona "SQL" o "Base de datos", el problema está ahí. Si ves "Fatal error" con nombres de archivos PHP, es problema de código o memoria.
P: ¿Puedo perder datos si modifico la base de datos?
R: Si ejecutas el comando SQL que te di para desactivar módulos, no perderás datos. Solo cambia el estado "activo" a "inactivo". Siempre es buena práctica hacer una copia de seguridad de la base de datos antes de hacer cambios.
P: ¿Por qué no veo la opción de PHP Settings en mi Syspanel?
R: Depende del plan de hosting. Algunos paneles limitan el acceso a ciertas configuraciones. En ese caso, intenta crear un archivo php.ini en la raíz de tu tienda y añade la línea memory_limit = 256M. Si no funciona, pide a tu hosting que lo haga.
P: Después de solucionar el error, ¿debo dejar el modo desarrollo activado?
R: No. Vuelve a poner define('_PS_MODE_DEV_', false); en el archivo defines.inc.php. Dejarlo activo en producción puede exponer información sensible a los visitantes.
P: ¿Qué hago si nada de esto funciona?
R: Respira. A veces el error es más complejo. Te recomiendo:
- Revisar los logs de error del servidor en Syspanel (suelen estar en "Logs" o "Registros").
- Descomprimir una copia de seguridad limpia de tu tienda (si tienes).
- Contactar al soporte técnico de tu hosting. Diles que ya revisaste módulos, .htaccess y permisos, y que necesitas ayuda con los logs del servidor.
Conclusión: No temas al error 500
El error 500 en PrestaShop puede ser frustrante, pero con esta guía paso a paso usando Syspanel (recuerda, accedes por el puerto 2106) tienes todas las herramientas para solucionar el error 500 en PrestaShop tú mismo. Desde aumentar la memoria PHP hasta desactivar módulos conflictivos, pasando por restaurar el .htaccess o limpiar la caché.
La clave está en la calma y en seguir un orden lógico: primero activa los errores PHP, luego aplica las soluciones una por una y comprueba si tu tienda vuelve a la vida.
Espero que este artículo te haya sido de gran ayuda. Si te quedas atascado, ya sabes, ¡tu técnico de soporte amigable está aquí para ayudarte! No dudes en dejar un comentario o contactar con tu proveedor. ¡Buena suerte con tu tienda!
