Guía para arreglar el error 500 en PrestaShop (DirectAdmin)
¿Tu tienda PrestaShop muestra un error 500 y no sabes qué hacer?
Si estás leyendo esto, probablemente te has encontrado con la temida pantalla blanca o el mensaje "Internal Server Error" al intentar acceder a tu tienda online. No te preocupes, es uno de los problemas más comunes en PrestaShop, y en la mayoría de los casos tiene solución sin necesidad de ser un experto en programación.
En esta guía completa, vamos a explicarte paso a paso cómo diagnosticar y solucionar el error 500 en PrestaShop cuando tu hosting utiliza el panel de control DirectAdmin. Te mostraremos desde las causas más básicas hasta las soluciones más avanzadas, siempre con un lenguaje claro y ejemplos prácticos.
¿Qué significa exactamente el error 500 en PrestaShop?
El error 500, también conocido como "Internal Server Error", es un mensaje genérico que indica que algo ha salido mal en el servidor, pero no especifica qué es. Es como si el servidor dijera: "Algo ha fallado, pero no te voy a decir el qué".
En el contexto de PrestaShop, este error puede deberse a múltiples factores:
- Permisos de archivos incorrectos.
- Un archivo
.htaccesscorrupto o mal configurado. - Problemas de memoria PHP (límite de memoria excedido).
- Errores en módulos o temas recién instalados.
- Problemas con la base de datos.
- Conflictos con la versión de PHP.
La buena noticia es que, con un enfoque metódico, podemos ir descartando causas hasta encontrar la solución. Vamos a ello.
Primeros pasos: Activar el modo de depuración de PrestaShop
Antes de tocar nada, necesitamos que PrestaShop nos muestre el error real. Por defecto, PrestaShop oculta los detalles del error 500 para no exponer información sensible, pero podemos activar el modo de depuración.
### Acceso por FTP o Administrador de Archivos
- Conéctate a tu hosting mediante FTP (FileZilla, por ejemplo) o usa el Administrador de Archivos de DirectAdmin.
- Localiza el archivo
config/defines.inc.phpen la raíz de tu instalación de PrestaShop. - Ábrelo con un editor de texto (Bloc de notas o similar).
- Busca la línea que dice:
define('_PS_MODE_DEV_', false); - Cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda el archivo y súbelo de nuevo si usaste FTP.
Ahora, al recargar tu tienda, verás un mensaje de error mucho más detallado, con la ruta exacta del archivo problemático y la línea donde ocurre el fallo. Anota ese mensaje, te será de gran ayuda.
[WARNING] No olvides volver a poner
define('_PS_MODE_DEV_', false);cuando termines de arreglar el error, o tu tienda mostrará información sensible a los visitantes.
Solución 1: Revisar y reparar el archivo .htaccess
El archivo .htaccess es uno de los principales sospechosos cuando aparece un error 500 PrestaShop. Este archivo controla las reglas de reescritura de URL y otros parámetros del servidor. Si está dañado o tiene una sintaxis incorrecta, el servidor no sabrá cómo procesar las solicitudes.
### Cómo regenerar el .htaccess desde el panel de administración
- Accede a tu panel de administración de PrestaShop (normalmente en
/admino la ruta que configuraste). - Ve a Parámetros avanzados > Rendimiento.
- Busca la sección "Regenerar el archivo .htaccess" y haz clic en el botón correspondiente.
- Guarda los cambios.
Si no puedes acceder al panel de administración (porque el error 500 te lo impide), tendrás que hacerlo manualmente:
### Regeneración manual del .htaccess
- Conéctate por FTP o al Administrador de Archivos de DirectAdmin.
- Renombra el archivo
.htaccessactual a.htaccess.bak(esto lo respaldará). - Crea un nuevo archivo llamado
.htaccesscon el siguiente contenido básico:
# -------- START PrestaShop --------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^tu-dominio.com$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ webservice/$1 [QSA,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
# -------- END PrestaShop --------
- Sustituye
tu-dominio.compor tu dominio real. - Guarda el archivo y prueba a cargar tu tienda.
[TIP] Si la tienda funciona con este archivo básico, el problema era el
.htaccessanterior. Ahora puedes intentar regenerarlo desde el panel de administración para que incluya todas las reglas necesarias.
Solución 2: Ajustar los permisos de archivos y carpetas
Un error 500 en PrestaShop también puede deberse a permisos incorrectos. PrestaShop necesita permisos específicos para leer y escribir archivos. Si un archivo tiene permisos demasiado restrictivos, el servidor no podrá acceder a él y lanzará el error.
### Permisos correctos para PrestaShop
- Carpetas (directorios): 755
- Archivos: 644
- Carpeta
cache/ylog/: 755 (y a veces 777 si tienes problemas) - Carpeta
config/: 755
### Cómo cambiar permisos con DirectAdmin
- Entra en Administrador de Archivos dentro de DirectAdmin.
- Navega hasta la carpeta raíz de tu PrestaShop.
- Selecciona todos los archivos y carpetas (Ctrl+A o clic en "Seleccionar todo").
- Haz clic en el botón "Cambiar permisos" o "Chmod".
- Introduce el valor
755para directorios y644para archivos. - Aplica los cambios.
[WARNING] No pongas permisos 777 en todos los archivos de forma indiscriminada. Es un riesgo de seguridad grave. Solo usa 777 temporalmente y en carpetas concretas si es imprescindible.
Solución 3: Aumentar el límite de memoria PHP
Muchas veces, el error 500 PrestaShop se debe a que el script PHP se queda sin memoria. Esto es especialmente común si tienes muchos módulos activos o si tu catálogo es muy grande.
### Cómo aumentar el límite de memoria
- Accede a DirectAdmin.
- Ve a Configuración de PHP o PHP Settings (la ubicación exacta puede variar según la versión).
- Busca la opción
memory_limit. - Cámbiala a
256Mo incluso512Msi tu hosting lo permite. - Guarda los cambios y reinicia el servicio PHP si es necesario.
Si no encuentras esta opción en DirectAdmin, puedes hacerlo manualmente:
### Modificación manual del php.ini
- Conéctate por FTP.
- Busca el archivo
php.inien la raíz de tu hosting o en la carpetapublic_html. - Si no existe, crea uno nuevo con el siguiente contenido:
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
post_max_size = 64M
upload_max_filesize = 64M
- Guarda el archivo y prueba de nuevo.
Solución 4: Desactivar módulos o temas problemáticos
Si el error 500 ha aparecido después de instalar un módulo o cambiar de tema, es muy probable que el problema esté relacionado con esa acción. Vamos a intentar revertirla.
### Desactivar módulos desde la base de datos
Si no puedes acceder al panel de administración, puedes desactivar los módulos directamente desde la base de datos:
- Accede a phpMyAdmin desde DirectAdmin.
- Selecciona la base de datos de tu PrestaShop.
- Busca la tabla
ps_module(el prefijops_puede variar según tu instalación). - Localiza el módulo que crees que está causando el problema.
- Cambia el valor de la columna
activede1a0. - Guarda los cambios.
### Cambiar temporalmente de tema
- En la tabla
ps_themeops_shop_url, busca la configuración del tema activo. - Cambia el nombre del tema por uno que sepas que funciona (por ejemplo, el tema por defecto
classic). - Guarda y prueba.
[INFO] Esta solución es temporal. Una vez que la tienda funcione, podrás investigar qué módulo o tema causaba el conflicto y reinstalarlo o actualizarlo.
Solución 5: Revisar los logs de error del servidor
DirectAdmin guarda los logs de error del servidor. Estos registros son oro puro para diagnosticar el error 500.
### Cómo acceder a los logs en DirectAdmin
- Entra en DirectAdmin.
- Ve a la sección "Logs" o "Registros".
- Busca el archivo
error.logoerror_log. - Abre el archivo y busca las líneas más recientes que contengan errores relacionados con tu dominio o con PHP.
Normalmente verás algo como:
[Sun Oct 15 10:30:00 2023] [error] [client 1.2.3.4] PHP Fatal error: Uncaught Error: Call to undefined function...
Ese mensaje te dirá exactamente qué archivo y qué función está fallando.
Solución 6: Verificar la versión de PHP
PrestaShop es sensible a la versión de PHP. Si has actualizado PHP recientemente o tu hosting lo ha hecho automáticamente, es posible que tu versión de PrestaShop no sea compatible.
### Versiones compatibles de PrestaShop y PHP
- PrestaShop 1.6: PHP 5.6 a 7.1 (idealmente 7.0)
- PrestaShop 1.7: PHP 7.1 a 7.4 (idealmente 7.4)
- PrestaShop 8.x: PHP 7.2 a 8.1 (idealmente 8.0)
### Cómo cambiar la versión de PHP en DirectAdmin
- Ve a Configuración de PHP o PHP Selector en DirectAdmin.
- Elige la versión de PHP recomendada para tu PrestaShop.
- Guarda los cambios.
[WARNING] Antes de cambiar la versión de PHP, asegúrate de que tus módulos y tema sean compatibles. Un cambio brusco puede causar más errores.
Solución 7: Reparar la base de datos
A veces, el error 500 se debe a tablas corruptas en la base de datos. Esto puede ocurrir tras una importación fallida o un corte de energía.
### Reparar tablas desde phpMyAdmin
- Accede a phpMyAdmin.
- Selecciona tu base de datos de PrestaShop.
- Haz clic en la pestaña "Marcar todas" o selecciona todas las tablas.
- En el menú desplegable, elige "Reparar tabla".
- Confirma la operación.
Solución 8: Comprobar el espacio en disco
Un disco lleno puede provocar errores 500. Si el servidor no tiene espacio para escribir archivos temporales o de caché, PrestaShop fallará.
### Verificar el espacio en DirectAdmin
- Ve a la sección "Uso de disco" o "Disk Usage".
- Comprueba que no has superado tu cuota.
- Si está lleno, elimina archivos innecesarios: backups antiguos, logs, cachés, etc.
Solución 9: Restaurar una copia de seguridad reciente
Si has probado todas las soluciones anteriores y nada funciona, puede que la opción más rápida sea restaurar una copia de seguridad de tu tienda de antes de que apareciera el error.
### Restaurar desde DirectAdmin
- Ve a Copias de seguridad o Backups.
- Selecciona la copia más reciente que sea anterior al error.
- Restaura tanto los archivos como la base de datos.
- Espera a que termine el proceso y prueba tu tienda.
[INFO] Esta solución es la más drástica, pero también la más efectiva si has hecho cambios importantes que no puedes deshacer manualmente.
Preguntas frecuentes sobre el error 500 en PrestaShop
¿Puedo perder mis datos si soluciono el error 500?
No, en la mayoría de los casos no perderás datos. Las soluciones que te hemos dado no borran información de la base de datos ni de los productos. Solo tocan archivos de configuración, permisos o caché.
¿Cuánto tiempo se tarda en arreglar el error 500?
Depende de la causa. Las soluciones más simples (como regenerar el .htaccess o cambiar permisos) pueden llevar 5 minutos. Las más complejas (como reparar la base de datos o desactivar módulos) pueden llevarte una hora.
¿Necesito conocimientos técnicos para hacer esto?
No, todas las soluciones están explicadas para que cualquier persona pueda seguirlas, incluso sin experiencia previa en hosting o programación. Solo necesitas acceso a DirectAdmin y, en algunos casos, a FTP.
¿Qué pasa si mi hosting usa Syspanel en lugar de DirectAdmin?
Si tu hosting usa Syspanel (antes conocido como HestiaCP), la interfaz es diferente, pero los conceptos son los mismos. Recuerda que el acceso a Syspanel se realiza a través del puerto 2106 (por ejemplo, https://tu-dominio.com:2106). Dentro de Syspanel, busca las opciones equivalentes: Administrador de archivos, Configuración de PHP y Logs de error.
Conclusión: Resolviendo el error 500 PrestaShop en DirectAdmin
El error 500 PrestaShop puede ser frustrante, pero con esta guía tienes un plan de acción claro y ordenado. Recuerda siempre:
- Activa el modo de depuración para ver el error real.
- Revisa el .htaccess y regenéralo si es necesario.
- Comprueba los permisos de archivos y carpetas.
- Aumenta la memoria PHP si el error lo indica.
- Desactiva módulos o temas problemáticos.
- Revisa los logs del servidor para obtener pistas.
- Verifica la versión de PHP y la compatibilidad.
- Repara la base de datos si está corrupta.
- Comprueba el espacio en disco.
- Restaura una copia de seguridad si todo lo demás falla.
Con paciencia y siguiendo estos pasos, tu tienda volverá a estar operativa en poco tiempo. Y si el problema persiste, no dudes en contactar con tu proveedor de hosting; ellos tienen acceso a herramientas más avanzadas y podrán ayudarte a diagnosticar el problema desde su lado.
Esperamos que esta guía te haya sido de gran ayuda. ¡Mucha suerte con tu tienda online!
