Cómo solucionar el error 500 Internal Server Error en PrestaShop (hosting Linux)
¿Acabas de encontrarte con un mensaje de error 500 en tu tienda PrestaShop y no sabes por dónde empezar? Respira, es más común de lo que crees y, en la mayoría de los casos, tiene solución.
El temido error 500 (Internal Server Error) es un mensaje genérico que indica que algo ha fallado en el servidor, pero no te dice exactamente qué es. Es como si el camarero te dijera "hay un problema en la cocina" sin darte más detalles. En este artículo, te voy a guiar paso a paso, con un lenguaje claro y sin tecnicismos innecesarios, para que puedas diagnosticar y solucionar este problema en tu hosting Linux.
Vamos a ello.
¿Por qué aparece el error 500 en PrestaShop?
Antes de lanzarnos a solucionar, es útil entender qué lo causa. En un hosting Linux con PrestaShop, las causas más frecuentes son:
- Permisos de archivos incorrectos: Los archivos de tu tienda tienen "etiquetas" que indican quién puede leer, escribir o ejecutarlos. Si están mal configurados, el servidor se bloquea.
- Un archivo
.htaccesscorrupto: Este archivo es como el "libro de instrucciones" del servidor para tu tienda. Si tiene una orden incorrecta, todo se detiene. - Límite de memoria PHP agotado: Tu tienda necesita un mínimo de memoria para funcionar. Si se queda corta, falla.
- Un módulo o plugin conflictivo: Algún módulo recién instalado o actualizado puede estar "peleándose" con el sistema.
- Errores de PHP en el código: Un pequeño error en un archivo PHP puede tumbar toda la tienda.
- Un archivo
.htaccessoindex.phpcorrupto: A veces, una actualización fallida deja archivos a medias. - Problemas con la versión de PHP: Tu hosting puede tener una versión de PHP que no es compatible con tu versión de PrestaShop.
Diagnóstico inicial: ¿Qué ha pasado?
Piensa en la última acción que hiciste en tu tienda antes de ver el error. ¿Instalaste un módulo? ¿Actualizaste algo? ¿Cambiaste de servidor? Esta pista es oro puro.
Solución paso a paso: De lo simple a lo complejo
Vamos a seguir un orden lógico, de las soluciones más fáciles a las más técnicas. No te saltes pasos, ya que el más simple puede ser la solución.
Paso 1: La solución mágica (y gratuita): Activar el modo depuración
El error 500 es un misterio, pero PrestaShop tiene un "detective" interno llamado modo depuración. Al activarlo, la tienda te mostrará el error real en pantalla, en lugar del mensaje genérico. Es el primer paso y el más revelador.
¿Cómo se hace?
- Accede a tu hosting a través de un cliente FTP (como FileZilla) o al Administrador de Archivos de tu panel de control (cPanel, Syspanel, etc.).
- Busca el archivo llamado
configdentro de la carpeta raíz de tu PrestaShop (donde están las carpetasadmin,modules,themes, etc.). - Dentro de
config, busca el archivodefines.inc.php. - Ábrelo con un editor de texto plano (como el Bloc de notas o Sublime Text).
- Busca la línea que dice
define('_PS_MODE_DEV_', false);. - Cambia
falseportrue. Debe quedar así:define('_PS_MODE_DEV_', true);. - Guarda el archivo y súbelo de nuevo a tu hosting (reemplaza el original).
- Ahora, recarga tu tienda. Verás un mensaje de error detallado en la pantalla. Ese mensaje es la clave. Anótalo o haz una captura de pantalla.
[INFO] Este mensaje te dirá exactamente qué archivo y qué línea están causando el problema. Por ejemplo, algo como
Fatal error: Uncaught Error: Call to undefined function...en/home/usuario/public_html/modules/mimodulo.phpen la línea 25. Con eso, ya sabes el culpable.
¿Qué hago con ese error?
- Si el error menciona un módulo, ve a la carpeta
/modules/y renombra la carpeta de ese módulo (por ejemplo, demimoduloamimodulo_old). Esto lo desactiva temporalmente y tu tienda debería funcionar. - Si el error menciona un archivo del tema, ve a la carpeta
/themes/y renombra la carpeta de tu tema activo (por ejemplo,classicaclassic_old). PrestaShop usará el tema por defecto.
Cuando termines, recuerda volver a poner false en el archivo defines.inc.php para que los clientes no vean los errores internos de tu tienda.
Paso 2: Revisar los permisos de archivos y carpetas
Cada archivo y carpeta en tu hosting Linux tiene permisos. Un valor típico y seguro es 644 para archivos y 755 para carpetas. Si están en 666 o 777, es una invitación a problemas de seguridad y errores.
¿Cómo lo corrijo?
- Con tu cliente FTP o el Administrador de Archivos, selecciona todos los archivos y carpetas de la raíz de tu PrestaShop.
- Busca la opción "Permisos de archivos" o "Chmod".
- Introduce el valor
644para archivos y755para carpetas. Si tu herramienta lo permite, activa la casilla "Recursivo" o "Aplicar a subcarpetas" para hacerlo en un solo paso. - Aplica los cambios y recarga tu tienda.
[WARNING] No te pases con los permisos.
777(todos pueden escribir) es un riesgo de seguridad grave. Si por error lo has puesto, cámbialo de inmediato a755para carpetas y644para archivos.
Paso 3: El archivo .htaccess, el "libro de instrucciones"
Este archivo es fundamental. Si está dañado o tiene directivas incompatibles, el servidor falla.
Solución: Regenerarlo.
- Ve a la raíz de tu PrestaShop con FTP.
- Busca el archivo
.htaccess(puede estar oculto; activa "Mostrar archivos ocultos" en tu cliente FTP). - Descárgalo a tu ordenador como copia de seguridad.
- Bórralo del servidor.
- Ve a tu panel de administración de PrestaShop (si puedes acceder). Si no puedes, tendrás que esperar.
- En el panel, ve a Parámetros avanzados > Rendimiento.
- Haz clic en el botón "Regenerar el archivo .htaccess" (o similar).
- Guarda. El archivo se creará de nuevo automáticamente.
Si no puedes acceder al panel de administración, puedes intentar crear un archivo .htaccess en blanco y subirlo, pero es mejor que se genere desde PrestaShop para que tenga el contenido correcto.
Paso 4: Aumentar el límite de memoria PHP
Si tu tienda necesita más memoria de la que el servidor le permite, fallará. Para aumentar el límite, puedes editar un archivo de configuración.
¿Cómo se hace?
- Busca un archivo llamado
php.inien la raíz de tu hosting (o crea uno nuevo con un editor de texto). - Añade o modifica la línea:
memory_limit = 256M(puedes usar 512M si es necesario). - Guarda y sube el archivo.
- Si no encuentras
php.ini, puedes intentar añadir esta línea al archivo.htaccessque acabamos de regenerar:
php_value memory_limit 256M
[TIP] Si el problema es de memoria, verás un mensaje como "Allowed memory size of X bytes exhausted" en el modo depuración. Esta es la solución directa.
Paso 5: Verificar la versión de PHP
PrestaShop es exigente con las versiones de PHP. Una versión demasiado antigua o demasiado nueva puede causar incompatibilidades.
¿Cómo lo compruebo?
- Accede a tu panel de control del hosting (Syspanel, cPanel, Plesk, etc.).
- Busca la sección "Versión de PHP" o "Select PHP Version".
- Comprueba cuál es la versión activa.
- Consulta la documentación de PrestaShop para saber cuál es la versión recomendada para tu versión de tienda. En general, PHP 7.4 o 8.0 son buenas opciones para versiones modernas.
- Cambia la versión a una compatible y guarda los cambios.
Paso 6: Revisar los módulos conflictivos (si no tienes acceso al panel)
Si el error te impide entrar al panel de administración, la solución es desactivar los módulos manualmente.
Método manual:
- Ve a la carpeta
/modules/de tu tienda. - Renombra la carpeta de los módulos que hayas instalado o actualizado recientemente. Por ejemplo, si el problema es con el módulo de pago, renombra su carpeta de
pago_seguroapago_seguro_old. - Recarga la tienda. Si funciona, ya sabes cuál es el problema.
- Puedes ir renombrando uno a uno hasta encontrar al culpable. Es un poco tedioso, pero muy efectivo.
Solución avanzada: Cuando nada de lo anterior funciona
Si has llegado hasta aquí y el error persiste, es hora de revisar los registros del servidor.
Revisar los logs de error del servidor
Estos registros son el "diario" del servidor. Contienen información detallada sobre los errores.
¿Dónde están?
- En tu panel de control (Syspanel, cPanel, etc.), busca la sección "Registros de errores" o "Error Logs".
- Si usas Syspanel, recuerda que el acceso es a través del puerto 2106. Busca la sección de "Logs" o "Registros".
- El archivo de error suele llamarse
error_logophp_error.logy puede estar en la raíz de tu hosting o en la carpetalogs. - Abre el archivo más reciente y busca los errores que coincidan con la fecha y hora en que viste el error 500.
Ese log te dará la pista definitiva. Por ejemplo, un error de tipo PHP Fatal error: Uncaught Error: Call to undefined function te dirá exactamente qué función falta y en qué archivo.
Contactar con el soporte de tu hosting
Si después de todos estos pasos el problema continúa, no te frustres. A veces el problema está en la configuración del servidor, algo que solo tu proveedor de alojamiento puede solucionar.
[WARNING] Antes de contactar con el soporte, ten a mano la información del error (la captura de pantalla del modo depuración o el error del log). Cuanta más información les des, más rápido podrán ayudarte.
Preguntas Frecuentes (FAQ)
¿Qué es exactamente un error 500?
Es un error genérico del servidor que indica que algo falló internamente, pero el servidor no puede dar más detalles. Es como un "fallo general".
¿Puedo perder mis datos con el error 500?
En la gran mayoría de los casos, no pierdes ningún dato. Es un problema de configuración o de código, no de la base de datos. Tus productos, pedidos y clientes siguen a salvo.
¿Por qué veo el error 500 solo en algunos navegadores?
Esto es poco común, pero puede deberse a una caché del navegador. Prueba a limpiar la caché o usar una ventana de incógnito.
¿El error 500 es un problema de mi ordenador?
No, es un problema del servidor donde está alojada tu tienda. Tu ordenador solo muestra el error que el servidor envía.
¿Cuánto tiempo se tarda en solucionar?
Depende de la causa. Si es un permiso de archivos, puede ser cuestión de minutos. Si es un módulo conflictivo, puede llevar más tiempo. Con esta guía, la mayoría lo soluciona en menos de una hora.
Si uso Syspanel, ¿cómo accedo al Administrador de Archivos?
Accede a tu panel de control Syspanel a través del puerto 2106 (por ejemplo, https://tudominio.com:2106). Dentro, busca la sección "Archivos" o "Administrador de archivos".
Resumen y consejo final
Hemos recorrido un camino lógico desde lo más simple a lo más complejo:
- Activa el modo depuración para ver el error real.
- Revisa los permisos de archivos y carpetas.
- Regenera el archivo .htaccess.
- Aumenta la memoria PHP.
- Verifica la versión de PHP.
- Desactiva módulos sospechosos.
- Revisa los logs del servidor.
El error 500 en PrestaShop es un rito de iniciación para cualquier administrador de tiendas online. No te asustes, es un problema con solución. La clave es la paciencia y el método. Sigue estos pasos en orden y, en la mayoría de los casos, tu tienda volverá a estar en línea en poco tiempo.
Si todo lo demás falla, recuerda que el soporte de tu hosting Linux está para ayudarte. No dudes en contactar con ellos, es su trabajo. ¡Mucha suerte y a vender!
