Solución: Error 500 en PrestaShop por permisos
¡Hola! Soy el soporte técnico de tu hosting. Si estás viendo un temido Error 500 en tu tienda PrestaShop, no te asustes. Es un problema común que suele tener una solución sencilla. En la mayoría de los casos, la causa es un problema de permisos de archivos y carpetas.
Este error significa que el servidor web no puede leer o ejecutar correctamente los archivos de PrestaShop. Vamos a solucionarlo paso a paso, como si lo hiciéramos juntos. Al final de esta guía, tu tienda volverá a funcionar.
¿Por qué ocurre el error 500 en PrestaShop?
El Error 500 es un error genérico del servidor. En PrestaShop, las causas más frecuentes son:
- Permisos incorrectos: Archivos o carpetas con permisos demasiado restrictivos (el servidor no puede leerlos) o demasiado abiertos (riesgo de seguridad que el sistema bloquea).
- Problemas de memoria: Un módulo o tema consume más memoria de la permitida.
- Archivos .htaccess corruptos: Una mala configuración o una actualización fallida.
- Incompatibilidad de PHP: La versión de PHP de tu servidor no es compatible con tu versión de PrestaShop.
Hoy nos centraremos en la causa más común y fácil de arreglar: los permisos. Pero también veremos cómo diagnosticar otras causas.
Identificando el problema: ¿Es realmente un error de permisos?
Antes de empezar a tocar archivos, debemos confirmar que el problema son los permisos. Para ello, activa el modo debug de PrestaShop. Esto te mostrará el error real en lugar de la pantalla blanca o el "Error 500".
### Paso 1: Activar el modo debug de PrestaShop
- Accede a tu panel de control de hosting. Si usas Syspanel (recuerda, el acceso es por el puerto 2106), busca el administrador de archivos.
- Navega hasta la carpeta raíz de tu tienda PrestaShop (normalmente
public_htmlowww). - Busca el archivo llamado
config/defines.inc.php. - Edítalo (con el editor de texto del panel).
- Busca la línea que dice:
define('_PS_MODE_DEV_', false); - Cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda el archivo. Recuerda que esto mostrará errores en tu tienda, por lo que una vez solucionado el problema, deberás volver a ponerlo en
false.
Ahora, al recargar tu tienda, en lugar del Error 500, verás un mensaje de error más descriptivo. Si ves algo como "Warning: require(/.../config/config.inc.php): failed to open stream: Permission denied", entonces el problema son claramente los permisos.
Solucionar error 500 PrestaShop: Ajustando los permisos correctos
Si el error menciona permisos, o simplemente quieres empezar por la solución más común, sigue estos pasos. Los permisos correctos para PrestaShop son:
- Carpetas: 755 (el dueño puede leer, escribir y ejecutar; los demás solo leer y ejecutar).
- Archivos: 644 (el dueño puede leer y escribir; los demás solo leer).
- Archivos de configuración sensibles (como
config/settings.inc.php): 644 o incluso 444 (solo lectura) por seguridad. - Carpeta
cacheylog: 755, pero a veces necesitan 777 temporalmente para que PrestaShop pueda escribir en ellas.
### Paso 2: Cambiar permisos desde el panel de control (Syspanel)
- Accede a Syspanel (puerto 2106) y ve al Administrador de Archivos.
- Selecciona la carpeta raíz de tu tienda (
public_html). - Marca la casilla de la carpeta raíz para seleccionar todo su contenido.
- Busca el botón o enlace que dice "Permisos" o "Cambiar permisos".
- Se abrirá una ventana. Deberás aplicar los permisos de forma recursiva (es decir, a todas las subcarpetas y archivos).
- Opción recomendada: Muchos paneles ofrecen un botón para "Aplicar permisos PrestaShop" o "Permisos estándar web". Si lo ves, úsalo.
- Opción manual: Si no, establece:
- Dueño: 7 (rwx)
- Grupo: 5 (r-x)
- Mundo: 5 (r-x)
- Aplica a: Directorios y archivos por separado (el panel suele tener dos opciones).
- Marcar la casilla: "Recursivo" o "Aplicar a todos los subdirectorios y archivos".
### Paso 3: Usar un cliente FTP (FileZilla) para cambiar permisos
Si prefieres usar FTP, es igual de sencillo:
- Conéctate a tu servidor con FileZilla.
- Navega a la carpeta raíz de tu tienda.
- Selecciona todas las carpetas y archivos (Ctrl+A).
- Haz clic derecho sobre la selección y elige "Permisos de archivos...".
- En la ventana que aparece:
- Marca las casillas de Lectura y Escritura para el Dueño.
- Marca Lectura y Ejecución para Grupo y Público.
- No marques "Escritura" para Grupo y Público (a menos que sea necesario para carpetas temporales).
- Marca la casilla "Dirigir a subdirectorios".
- Elige "Aplicar solo a directorios" y pulsa Aceptar.
- Repite los pasos 3-6, pero esta vez elige "Aplicar solo a archivos".
[TIP] Si después de esto sigues teniendo problemas, la carpeta var/cache y var/log (en PrestaShop 1.7+) o cache y log (en PrestaShop 1.6) pueden necesitar permisos 777 temporalmente. Cámbialos solo a esas carpetas y, una vez que la tienda funcione, vuélvelos a 755.
Otras causas comunes del Error 500 y cómo solucionarlas
Si después de ajustar los permisos el error persiste, no te rindas. Prueba estas otras soluciones.
### Problemas con el archivo .htaccess
PrestaShop genera un archivo .htaccess que a veces se corrompe.
- Desde tu panel o FTP, localiza el archivo
.htaccessen la raíz de tu tienda. - Renómbralo a
.htaccess_old(esto lo desactiva). - Recarga tu tienda. Si funciona, el problema era el .htaccess.
- Ve al back office de PrestaShop (si puedes acceder) o regenera el .htaccess desde el panel de administración en Configuración > Rendimiento > y pulsa el botón "Guardar" (esto lo regenera automáticamente).
[WARNING] Si renombras el .htaccess, las URLs amigables dejarán de funcionar. Es una solución temporal para diagnosticar.
### Versión de PHP incorrecta
PrestaShop 1.6 funciona mejor con PHP 5.6 o 7.0. PrestaShop 1.7 y 8.x necesitan PHP 7.1 o superior (PHP 8.0 o 8.1 es lo recomendado).
- En Syspanel, busca la sección "PHP Selector" o "Versión de PHP".
- Selecciona una versión compatible con tu PrestaShop.
- Guarda los cambios y recarga la tienda.
### Límite de memoria excedido (Memory Limit)
A veces un módulo consume mucha memoria.
- En la raíz de tu tienda, busca el archivo
index.php. - Justo después de la línea
<?php, añade esta línea:ini_set('memory_limit', '512M'); - Guarda el archivo. Si la tienda carga, el problema era el límite de memoria. Entonces, debes aumentar el límite desde el
php.inio desde el selector de PHP de Syspanel.
FAQ: Preguntas frecuentes sobre el Error 500 en PrestaShop
P: He cambiado los permisos a 755 y 644, pero sigo viendo el error 500. ¿Qué hago?
R: Prueba a dar permisos 777 a las carpetas cache, log y upload (si existe). Si funciona, luego cámbialos a 755. Si no, prueba con el punto 2: desactivar el .htaccess.
P: ¿Es peligroso poner permisos 777?
R: Sí, es un riesgo de seguridad porque cualquiera podría escribir en esas carpetas. Solo debe hacerse de forma temporal para solucionar un error y luego volver a 755.
P: No encuentro el archivo config/defines.inc.php para activar el debug.
R: Asegúrate de estar en la carpeta correcta. Si tu tienda está en una subcarpeta, busca ahí. Si no existe, puedes crearlo o usar el archivo config/config.inc.php para activar el modo debug de forma alternativa (aunque es más complejo).
P: Mi hosting usa Syspanel. ¿Dónde cambio la versión de PHP?
R: En Syspanel, busca la sección "Avanzado" o "PHP" y luego "Selector de PHP". Allí podrás elegir la versión.
P: ¿Puedo solucionar el error 500 desde el back office de PrestaShop?
R: Si el error 500 te impide acceder al back office, no podrás. Por eso es importante solucionarlo desde el panel de control o FTP.
P: Después de solucionar el error, ¿debo desactivar el modo debug?
R: ¡Sí! Vuelve a poner define('_PS_MODE_DEV_', false); en el archivo config/defines.inc.php. Dejarlo activo en producción muestra información sensible a los visitantes.
Resumen rápido: Checklist para solucionar error 500 PrestaShop
- [Diagnóstico] Activar modo debug en
config/defines.inc.php. - [Solución #1] Cambiar permisos: Carpetas a 755, Archivos a 644 (de forma recursiva).
- [Solución #2] Probar con permisos 777 temporales en carpetas
cacheylog. - [Solución #3] Renombrar
.htaccessa.htaccess_old. - [Solución #4] Cambiar la versión de PHP desde Syspanel.
- [Solución #5] Aumentar el límite de memoria en
index.php. - [Final] Desactivar modo debug.
¡Y eso es todo! Con estos pasos, deberías ser capaz de solucionar error 500 PrestaShop y volver a vender. Si después de todo esto el error persiste, contacta con tu proveedor de hosting, ya que podría ser un problema del servidor a nivel más profundo. ¡Mucha suerte!
