🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

¿Cómo solucionar errores 500 en PrestaShop con DirectAdmin?

Actualizado el 14 de abril de 2026

Imagina que estás a punto de mostrar tu tienda online a un cliente importante, y de repente aparece una pantalla en blanco con el temido mensaje: "500 Internal Server Error". Es frustrante, ¿verdad? Pero no te preocupes, como técnico de soporte amigable, te guiaré paso a paso para resolver este problema en tu servidor con DirectAdmin y PrestaShop. Este error es común en entornos Linux, y con un enfoque de SysAdmin básico, podrás diagnosticarlo y solucionarlo sin necesidad de ser un experto.

Vamos a desglosar todo lo que necesitas saber sobre el PrestaShop error 500, desde las causas más comunes hasta las soluciones prácticas. Al final de este artículo, tendrás las herramientas para enfrentar este error con confianza y mantener tu tienda funcionando sin problemas.

¿Qué es un error 500 en PrestaShop y por qué ocurre?

El error 500 es un código de estado HTTP que indica que el servidor encontró un problema interno y no puede completar la solicitud. En el contexto de PrestaShop, esto suele deberse a configuraciones incorrectas, archivos corruptos, falta de memoria o problemas con módulos. En DirectAdmin, el entorno de hosting es más controlado, pero aún así pueden surgir conflictos.

Causas comunes del error 500 en PrestaShop con DirectAdmin

  • Archivos .htaccess corruptos o mal configurados: Este archivo controla las reglas de reescritura de URL y permisos. Si se daña, PrestaShop no puede cargar.
  • Límites de memoria PHP excedidos: Si tu tienda tiene muchos productos o módulos pesados, puede superar el límite de memoria asignado.
  • Módulos o temas incompatibles: Un módulo mal codificado o desactualizado puede generar un error interno.
  • Permisos de archivos incorrectos: En Linux, los archivos y carpetas deben tener permisos específicos para que el servidor web (Apache o Nginx) los lea.
  • Errores en el archivo config/settings.inc.php: Este archivo contiene la configuración de la base de datos y puede dañarse durante una actualización o migración.
  • Problemas con PHP: Versiones incompatibles o extensiones faltantes (como PDO, MySQLi, etc.) pueden causar el error.

Paso 1: Activar el modo de depuración en PrestaShop

Antes de hacer cambios drásticos, necesitas obtener más información sobre el error. PrestaShop tiene un modo de depuración que muestra mensajes detallados. Sigue estos pasos:

Accede al archivo de configuración de PrestaShop

Conéctate a tu servidor mediante FTP o el administrador de archivos de DirectAdmin (puedes hacerlo desde el panel de control, en la sección "File Manager"). Luego, abre la carpeta raíz de tu tienda (por ejemplo, public_html o tu-dominio.com).

Edita el archivo config/defines.inc.php

Busca la línea que dice:

define('_PS_MODE_DEV_', false);

Cámbiala a:

define('_PS_MODE_DEV_', true);

Esto activará el modo de desarrollo. También puedes añadir estas líneas justo debajo para obtener más detalles:

define('_PS_DISPLAY_COMPATIBILITY_WARNING_', true);
ini_set('display_errors', 'on');

[TIP] Si no encuentras el archivo defines.inc.php, puede que tu versión de PrestaShop lo haya renombrado. En versiones recientes (1.7+), busca config/defines.inc.php o crea un archivo config/defines_custom.inc.php con las mismas líneas.

Guarda los cambios y recarga la página

Ahora, al cargar tu tienda, deberías ver un mensaje de error más descriptivo, como "Fatal error: Allowed memory size exhausted" o "Class not found". Anota ese mensaje, porque te guiará a la solución.

Paso 2: Solucionar el error 500 revisando los registros del servidor

Si el modo de depuración no muestra nada o prefieres un enfoque más directo, revisa los logs del servidor. En DirectAdmin, puedes acceder a ellos desde el panel.

Accede a los logs de errores de Apache

  1. Inicia sesión en DirectAdmin.
  2. Ve a "Account Manager" > "Error Logs" o directamente a la sección "Site Summary / Statistics / Logs".
  3. Busca el archivo error_log en la carpeta domains/tu-dominio.com/logs/ (o similar).

Interpreta las líneas del log

Busca entradas que contengan "PHP Fatal error" o "mod_fcgid". Por ejemplo:

[Sun Jan 14 10:00:00 2024] [error] [client 192.168.1.1] PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /home/usuario/domains/tudominio.com/public_html/classes/Tools.php on line 1234

Este mensaje indica que la memoria PHP se agotó. Otro ejemplo común:

[Sun Jan 14 10:00:00 2024] [error] [client 192.168.1.1] File does not exist: /home/usuario/domains/tudominio.com/public_html/404.shtml

Esto puede deberse a un archivo .htaccess mal configurado.

[INFO] Si usas Syspanel (anteriormente HestiaCP), el puerto de acceso es el 2106. Los logs se encuentran en /var/log/apache2/ o en la ruta específica de tu dominio dentro de home/usuario/.

Paso 3: Aumentar los límites de memoria PHP

Uno de los culpables más frecuentes del error 500 solución es la falta de memoria. En DirectAdmin, puedes ajustar esto fácilmente.

Modifica el archivo php.ini local

  1. En el administrador de archivos de DirectAdmin, busca el archivo php.ini en la raíz de tu dominio (si no existe, créalo).
  2. Agrega o modifica estas líneas:
memory_limit = 256M
max_execution_time = 180
max_input_time = 180
upload_max_filesize = 64M
post_max_size = 64M

[TIP] Si no ves cambios, es posible que tu hosting use PHP-FPM. En ese caso, debes modificar el archivo php.ini a través de la sección "PHP Selector" de DirectAdmin (busca "PHP Settings" o "Select PHP Version").

Usa el PHP Selector de DirectAdmin

  1. En DirectAdmin, ve a "Account Manager" > "PHP Settings" o "PHP Selector".
  2. Selecciona la versión de PHP que uses (por ejemplo, 8.0 o 8.1).
  3. Busca la opción "memory_limit" y cámbiala a 256M o más (según las necesidades de tu tienda).
  4. Guarda los cambios y espera unos segundos a que se apliquen.

Paso 4: Revisar y reparar el archivo .htaccess

Un archivo .htaccess corrupto es otra causa común del DirectAdmin PrestaShop error. PrestaShop genera este archivo automáticamente, pero a veces se daña.

Renombra el archivo .htaccess temporalmente

  1. Conéctate por FTP o al administrador de archivos.
  2. Busca el archivo .htaccess en la raíz de tu tienda.
  3. Renómbralo a .htaccess_old (esto lo desactiva).
  4. Recarga tu tienda. Si el error desaparece, el problema está en el .htaccess.

Regenera el .htaccess desde el backoffice de PrestaShop

  1. Accede a tu panel de administración de PrestaShop (si puedes, si no, prueba con el siguiente paso).
  2. Ve a "Configuración" > "SEO y URLs" o "Parámetros de la tienda" > "Tráfico y SEO".
  3. Haz clic en "Guardar" (sin cambiar nada) para regenerar el archivo.

[WARNING] Si no puedes acceder al backoffice, puedes generar un .htaccess básico manualmente. Crea un archivo nuevo con este contenido:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

Paso 5: Verificar los permisos de archivos y carpetas

Los permisos incorrectos son un problema clásico en Linux PrestaShop. PrestaShop necesita permisos específicos para escribir archivos de caché, imágenes y logs.

Permisos recomendados

  • Archivos: 644 (lectura y escritura para el usuario, solo lectura para el grupo y otros).
  • Carpetas: 755 (lectura, escritura y ejecución para el usuario, lectura y ejecución para el grupo y otros).
  • Archivos de configuración (como config/settings.inc.php): 644.

Cómo cambiar permisos en DirectAdmin

  1. En el administrador de archivos, selecciona toda la carpeta de tu tienda.
  2. Haz clic en "Cambiar permisos" o "Chmod".
  3. Marca las opciones correspondientes (por ejemplo, para archivos: 644, para carpetas: 755).
  4. Aplica los cambios de forma recursiva (a todas las subcarpetas y archivos).

[INFO] Si usas Syspanel, puedes hacerlo desde la línea de comandos con SSH: find /home/usuario/domains/tudominio.com/public_html -type f -exec chmod 644 {} \; y find /home/usuario/domains/tudominio.com/public_html -type d -exec chmod 755 {} \;.

Paso 6: Deshabilitar módulos problemáticos

Los módulos de terceros son una fuente común de errores. Si el error 500 apareció después de instalar o actualizar un módulo, probablemente sea el culpable.

Desactiva módulos desde la base de datos

Si no puedes acceder al backoffice, hazlo directamente desde phpMyAdmin (disponible en DirectAdmin).

  1. En DirectAdmin, ve a "MySQL Management" > "phpMyAdmin".
  2. Selecciona la base de datos de tu tienda.
  3. Busca la tabla ps_module (o prestashop_module según el prefijo).
  4. Localiza el módulo sospechoso y cambia su estado de 1 (activo) a 0 (inactivo).

[TIP] Si no sabes cuál es el módulo problemático, puedes desactivar todos los módulos no esenciales. Ejecuta esta consulta SQL (reemplaza ps_ por tu prefijo):

UPDATE ps_module SET active = 0 WHERE id_module > 1;

Luego, ve activándolos uno por uno desde el backoffice para identificar al culpable.

Paso 7: Forzar la regeneración de la caché de PrestaShop

La caché corrupta puede causar errores 500. PrestaShop almacena archivos temporales en las carpetas cache/ y var/cache/.

Elimina la caché manualmente

  1. Conéctate por FTP o al administrador de archivos.
  2. Elimina todo el contenido de las carpetas:
    • cache/smarty/cache/
    • cache/smarty/compile/
    • var/cache/ (en PrestaShop 1.7+)
  3. No borres las carpetas en sí, solo los archivos que contienen.

[WARNING] Si tienes problemas de permisos, asegúrate de que las carpetas tengan permisos 755 y que el usuario del servidor web (por ejemplo, apache o nobody) pueda escribir en ellas.

Paso 8: Verificar la configuración de la base de datos

Un archivo config/settings.inc.php dañado puede impedir que PrestaShop se conecte a la base de datos.

Revisa el archivo de configuración

  1. Abre config/settings.inc.php con un editor de texto.
  2. Verifica que los datos sean correctos:
    define('_DB_SERVER_', 'localhost');
    define('_DB_NAME_', 'tu_base_de_datos');
    define('_DB_USER_', 'tu_usuario');
    define('_DB_PASSWD_', 'tu_contraseña');
    define('_DB_PREFIX_', 'ps_');
    
  3. Si has cambiado la contraseña o el usuario recientemente, actualiza estos valores.

[INFO] Si no recuerdas los datos, puedes encontrarlos en el archivo config/settings.inc.php original o en el panel de DirectAdmin, en "MySQL Management".

Paso 9: Actualizar PHP a una versión compatible

PrestaShop requiere versiones específicas de PHP. Por ejemplo, PrestaShop 1.7 funciona mejor con PHP 7.4 o 8.0, mientras que PrestaShop 8.x necesita PHP 8.0 o superior.

Cambia la versión de PHP en DirectAdmin

  1. Ve a "Account Manager" > "PHP Selector" o "Select PHP Version".
  2. Elige una versión compatible con tu PrestaShop.
  3. Guarda los cambios y espera a que se apliquen.

[TIP] Si después de cambiar la versión el error persiste, es posible que falten extensiones. Activa las siguientes desde el mismo selector: mysqli, pdo_mysql, gd, curl, mbstring, openssl, json.

Paso 10: Reinstalar PrestaShop (solo como último recurso)

Si nada funciona, una reinstalación limpia puede ser la solución. Pero antes, haz una copia de seguridad de tu base de datos y archivos.

Pasos para reinstalar sin perder datos

  1. Descarga una copia de tu tienda actual (archivos y base de datos).
  2. Elimina todo el contenido de la carpeta public_html excepto la carpeta img/ (para conservar imágenes) y el archivo config/settings.inc.php (si quieres mantener la configuración de la base de datos).
  3. Sube los archivos de una instalación nueva de PrestaShop (la misma versión que tenías).
  4. Ejecuta el instalador web, pero cuando te pida la base de datos, selecciona "No sobrescribir" o "Usar base de datos existente".

[WARNING] Este paso es riesgoso. Asegúrate de tener un backup completo antes de proceder.

Preguntas frecuentes (FAQ) sobre el error 500 en PrestaShop

¿Por qué mi error 500 solo aparece en algunas páginas?

Suele deberse a un módulo específico o a una regla de reescritura en el .htaccess que afecta a ciertas URLs.

¿El error 500 puede deberse a un ataque de hackers?

Sí, si tu tienda ha sido comprometida, los archivos pueden dañarse. Revisa los logs en busca de actividad sospechosa y cambia todas las contraseñas.

¿Qué hago si no puedo acceder al backoffice de PrestaShop?

Usa phpMyAdmin para desactivar módulos o editar la configuración. También puedes conectarte por SSH y usar comandos como php bin/console prestashop:module disable nombre_modulo (si tienes la consola instalada).

¿El error 500 afecta el SEO?

Sí, porque los motores de búsqueda no pueden indexar tu tienda. Solucionarlo rápidamente es crucial para evitar penalizaciones.

Conclusión: No dejes que el error 500 arruine tu día

Resolver un PrestaShop error 500 en DirectAdmin puede parecer abrumador al principio, pero con un enfoque sistemático, puedes identificar la causa y aplicar la solución adecuada. Recuerda siempre activar el modo de depuración, revisar los logs, aumentar la memoria PHP y verificar los permisos. Si sigues estos pasos, tu tienda volverá a estar online en poco tiempo.

Como SysAdmin amigable, te recomiendo mantener un backup regular de tu tienda y monitorear los logs del servidor para prevenir futuros errores. Y si usas Syspanel, no olvides que el puerto de acceso es el 2106 para gestionar tu servidor de forma eficiente.

Ahora, ve y soluciona ese error. ¡Tu tienda te lo agradecerá!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel