Solución al error 500 en PrestaShop con DirectAdmin
¡Hola! Soy el técnico de soporte amigable. Si estás leyendo esto, es porque tu tienda PrestaShop te ha mostrado el temido error 500 y estás usando DirectAdmin como panel de control. No te preocupes, es uno de los problemas más comunes y, por suerte, casi siempre tiene solución.
Vamos a desglosar paso a paso cómo identificar la causa y solucionar el error 500 PrestaShop DirectAdmin. Este error, conocido técnicamente como "Error interno del servidor", es una forma que tiene el servidor de decir: "Algo salió mal, pero no sé exactamente qué". Lo bueno es que nosotros sí podemos descubrirlo.
¿Qué es el error 500 y por qué ocurre en PrestaShop con DirectAdmin?
El error 500 es un error genérico del lado del servidor. En el contexto de PrestaShop y DirectAdmin, las causas más frecuentes son:
- Archivos con permisos incorrectos (muy común al subir archivos por FTP).
- Un archivo .htaccess corrupto o mal configurado.
- Un módulo o tema defectuoso que rompe la comunicación con el servidor.
- Límites de memoria PHP excedidos.
- Problemas con la versión de PHP (PrestaShop necesita una versión específica).
- Archivos PHP dañados o incompletos (por ejemplo, después de una actualización fallida).
Vamos a atacar cada una de estas causas de forma ordenada. No saltes pasos, hazlos en el orden que te indico.
Paso 1: Activar el modo debug de PrestaShop (la clave para entender el error)
Por defecto, PrestaShop oculta los detalles del error 500. Necesitamos que nos muestre el error real. Esto se hace editando un archivo de configuración.
### Accede al archivo define.inc.php
- Conéctate a tu hosting a través de FTP (FileZilla, Cyberduck, etc.) o usa el Administrador de Archivos de DirectAdmin (en la sección "File Manager").
- Navega hasta la carpeta raíz de tu tienda (normalmente
public_htmlotu-dominio.com). - Busca la carpeta
/config/. - Dentro, encuentra el archivo
define.inc.php. Descarga una copia de seguridad antes de editarlo (por si acaso).
### Edita el archivo para mostrar errores
Abre define.inc.php con un editor de texto plano (como Notepad++ o Sublime Text). Busca esta línea:
define('_PS_MODE_DEV_', false);
Cámbiala por:
define('_PS_MODE_DEV_', true);
Guarda el archivo y súbelo de nuevo al servidor (sobrescribiendo el original).
Ahora, al cargar tu tienda, en lugar del error 500 genérico, verás un mensaje de error detallado. Anota ese mensaje, porque nos dirá exactamente qué archivo o línea está fallando. Por ejemplo, puede decir: "Fatal error: Allowed memory size of...".
[TIP] Si después de esto ves una página en blanco, es posible que el error sea de PHP fatal. No te preocupes, sigue con los pasos siguientes.
Paso 2: Solucionar el error 500 según el mensaje de error
Aquí tienes las soluciones más comunes según lo que te muestre el modo debug.
### Si el error dice "Allowed memory size of X bytes exhausted"
Esto es un límite de memoria PHP muy bajo. Tu tienda necesita más memoria para funcionar.
Solución (desde DirectAdmin):
- En DirectAdmin, ve a "Account Manager" > "PHP Settings" (o "PHP Selector").
- Busca la opción "memory_limit".
- Auméntala a un valor más alto. Recomendamos:
- 128M (mínimo para PrestaShop 1.7+).
- 256M o 512M si tu tienda es grande o tiene muchos módulos.
- Guarda los cambios y recarga tu tienda.
### Si el error menciona un archivo .htaccess
El archivo .htaccess de PrestaShop a veces se corrompe, sobre todo después de actualizaciones o cambios en la URL.
Solución:
- Conéctate por FTP o al Administrador de Archivos.
- En la raíz de tu tienda, renombra el archivo
.htaccessa.htaccess_old. Esto lo desactivará. - Ve al back office de PrestaShop:
- PrestaShop 1.7+: Ve a Configuración > Parámetros de la tienda > Tráfico y SEO.
- PrestaShop 1.6: Ve a Preferencias > SEO y URLs.
- En la parte inferior, haz clic en "Guardar" sin cambiar nada. Esto regenerará un
.htaccessnuevo y limpio. - Vuelve a cargar tu tienda.
[WARNING] Si no puedes acceder al back office, renombra el archivo
.htaccessy prueba de nuevo. Si el error persiste, el problema no es el.htaccess.
### Si el error es de un módulo o tema específico
El mensaje de error puede decir algo como "en el archivo modulo/mi_modulo/mi_modulo.php en la línea 50". Eso te indica el módulo o tema problemático.
Solución:
- Desactiva el módulo o tema sospechoso:
- Si puedes acceder al back office, ve a Módulos > Gestor de módulos, busca el módulo y desactívalo.
- Si no puedes acceder, tendrás que hacerlo manualmente:
- Conéctate por FTP.
- Ve a la carpeta
/modules/y renombra la carpeta del módulo problemático añadiendo un guion bajo al final, por ejemplo:mi_modulo_old. - Si el error es de un tema, renombra la carpeta dentro de
/themes/.
- Prueba a cambiar temporalmente al tema por defecto (por ejemplo, "classic" en PrestaShop 1.7). Puedes forzarlo editando la base de datos (consultando a tu soporte) o, si el error lo permite, desde el back office.
Paso 3: Revisar los permisos de archivos y carpetas
Los permisos incorrectos son una causa muy frecuente del error 500 PrestaShop DirectAdmin. PrestaShop necesita permisos específicos para leer y escribir archivos.
Solución desde DirectAdmin o FTP:
- Conéctate al Administrador de Archivos de DirectAdmin o a tu FTP.
- Selecciona todos los archivos y carpetas de la raíz de tu tienda.
- Para las carpetas (directorios): Deben tener permisos 755.
- Para los archivos: Deben tener permisos 644.
- Para los archivos de configuración (
config/settings.inc.php,config/defines.inc.php): Pueden necesitar 644 o incluso 444 (solo lectura) para mayor seguridad. - Recursividad: Asegúrate de aplicar estos cambios de forma recursiva (a todas las subcarpetas y archivos).
[INFO] En DirectAdmin, en el Administrador de Archivos, puedes marcar "Recursive" (Recursivo) al cambiar permisos. Hazlo.
Paso 4: Verificar la versión de PHP
PrestaShop es sensible a la versión de PHP. Si tu hosting tiene una versión muy nueva o muy antigua, puede dar error 500.
Versiones recomendadas:
- PrestaShop 1.6: PHP 5.6 o 7.0 (máximo 7.1).
- PrestaShop 1.7: PHP 7.1, 7.2, 7.3 o 7.4 (recomendado 7.4).
- PrestaShop 8.x: PHP 7.4 o 8.0.
Solución en DirectAdmin:
- Ve a "Account Manager" > "PHP Selector" o "PHP Settings".
- Cambia la versión de PHP a una compatible con tu PrestaShop.
- Guarda y prueba.
[WARNING] Si cambias de PHP 5.6 a 7.4, algunos módulos antiguos pueden dejar de funcionar. Es mejor migrar a una versión compatible con tu versión de PrestaShop.
Paso 5: Descartar problemas con el archivo .htaccess del servidor (DirectAdmin)
A veces, DirectAdmin tiene su propio .htaccess en la raíz del dominio que puede entrar en conflicto.
Solución:
- Conéctate al Administrador de Archivos de DirectAdmin.
- Busca un archivo llamado
.htaccessen la raíz de tu dominio (no dentro depublic_html, sino en la carpeta del usuario, a veces llamadadomains/tudominio.com/). - Si existe, renómbralo a
.htaccess_backuptemporalmente. - Prueba tu tienda.
Si esto soluciona el error, es que ese archivo tenía una directiva incorrecta. Puedes restaurarlo y editarlo, o consultar con tu proveedor de hosting.
Paso 6: Revisar los logs del servidor (la opción más técnica)
Si nada de lo anterior funciona, los logs del servidor tienen la respuesta definitiva.
Cómo acceder a los logs en DirectAdmin:
- En DirectAdmin, ve a "Advanced Features" > "Error Logs" o "Log Viewer".
- Busca el archivo
error_logen la raíz de tu dominio (a veces está enpublic_htmlo en una carpetalogs). - Descarga el archivo y ábrelo con un editor de texto. Busca las líneas que coincidan con la hora en que viste el error 500.
- El mensaje de error real estará ahí, a menudo con el prefijo
[error]o[PHP Error].
Ejemplo de línea de log:
[Sun Jan 15 10:30:45.123456 2025] [php:notice] [pid 12345] [client 192.168.1.1:54321] PHP Fatal error: Uncaught Error: Call to undefined function curl_init() in /home/usuario/public_html/modules/modulox/modulox.php:100
Este log te dice que el módulo modulox necesita la función curl_init() que no está disponible. La solución sería instalar la extensión PHP curl desde el PHP Selector de DirectAdmin.
Preguntas frecuentes (FAQ)
### ¿Puedo solucionar el error 500 sin acceso al back office de PrestaShop?
Sí, la mayoría de las soluciones se hacen desde DirectAdmin o FTP, como hemos visto. No necesitas el back office.
### ¿Qué hago si el error persiste después de todos los pasos?
Si has seguido todos los pasos y el error 500 sigue apareciendo, puede ser un problema más grave, como:
- Corrupción de archivos de PrestaShop: Reemplaza todos los archivos de PrestaShop (excepto
/img/,/themes/,/modules/y/config/settings.inc.php) con una copia limpia de la misma versión. - Problema de base de datos: Ejecuta un repair de las tablas desde phpMyAdmin (en DirectAdmin, en la sección "MySQL Management").
- Configuración del servidor: Contacta con tu proveedor de hosting, puede que haya un límite de recursos o una configuración de servidor que lo esté causando.
### ¿Es seguro borrar el archivo .htaccess?
Sí, es seguro renombrarlo temporalmente. PrestaShop lo regenera automáticamente al guardar la configuración de SEO. Si lo borras, la tienda seguirá funcionando, pero perderás las reglas de reescritura de URLs amigables (tus URLs se verán como index.php?id_product=1).
### ¿Por qué mi hosting con DirectAdmin da más errores 500 que otros?
DirectAdmin es un panel potente, pero a veces la configuración por defecto de PHP (como el memory_limit) es baja para PrestaShop. Siempre revisa los PHP Settings de tu cuenta.
Resumen final
El error 500 PrestaShop DirectAdmin no es el fin del mundo. Con paciencia y siguiendo estos pasos, lo solucionarás:
- Activa el modo debug para ver el error real.
- Aumenta la memoria PHP (memory_limit).
- Regenera el .htaccess.
- Desactiva módulos o temas problemáticos.
- Corrige los permisos de archivos y carpetas.
- Verifica la versión de PHP.
- Revisa los logs del servidor como último recurso.
Si después de todo esto el error persiste, no dudes en contactar con tu proveedor de hosting. Ellos pueden acceder a configuraciones del servidor que tú no ves desde DirectAdmin.
¡Espero que este artículo te haya sido de gran ayuda! Recuerda, la calma y el orden son tus mejores aliados. ¡Tu tienda volverá a funcionar pronto!
