Cómo solucionar error 500 en PrestaShop desde DirectAdmin
¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, probablemente te has topado con la temida pantalla blanca o el mensaje "Error 500" en tu tienda PrestaShop. No te preocupes, es un problema muy común y, aunque parezca grave, normalmente tiene solución.
Este error es un "Error Interno del Servidor". Es la forma que tiene el servidor de decir: "Algo salió mal, pero no puedo darte más detalles por seguridad". Lo bueno es que, desde tu panel de control DirectAdmin, podemos investigar y solucionarlo paso a paso.
En esta guía extensa y detallada, te explicaré cómo solucionar error 500 en PrestaShop usando las herramientas que te ofrece DirectAdmin PrestaShop (o cualquier CMS). Vamos a convertir ese error en un recuerdo.
¿Qué causa el error 500 en PrestaShop?
Antes de lanzarnos a arreglarlo, es útil saber qué lo provoca. El error 500 PrestaShop suele deberse a una de estas razones:
- Problemas de memoria (PHP Memory Limit): El script de PrestaShop intenta usar más memoria de la que el servidor le permite.
- Módulo o tema defectuoso: Un plugin o plantilla que acabas de instalar o actualizar tiene un error de código.
- Archivos .htaccess corruptos: Este archivo es vital para las URLs amigables y la configuración del servidor. Si se daña, todo falla.
- Permisos de archivos incorrectos: El servidor no tiene permisos para leer o ejecutar ciertos archivos de PrestaShop.
- Error en un archivo PHP (como config/settings.inc.php): Una línea de código mal escrita o un error de conexión a la base de datos.
No te asustes. Vamos a revisar cada punto desde DirectAdmin, que es tu herramienta de control.
Requisitos previos: Acceso a DirectAdmin y archivos
Para seguir esta guía, necesitarás:
- Acceso a tu panel de control DirectAdmin. (Usuario y contraseña que te dio tu proveedor de hosting).
- Un cliente FTP o el Administrador de Archivos de DirectAdmin. Usaremos el de DirectAdmin para no complicarnos.
- Acceso a phpMyAdmin (dentro de DirectAdmin) por si toca revisar la base de datos.
[INFO] Si tu hosting usa Syspanel (el antiguo VestaCP o HestiaCP), el proceso es similar, pero accedes por el puerto 2106 (ejemplo: tudominio.com:2106). Las herramientas son casi las mismas.
Paso 1: Activar el modo debug de PrestaShop (La clave del éxito)
Por defecto, PrestaShop oculta el error específico. Para ver qué está fallando realmente, debemos activar el modo debug. Esto se hace editando el archivo defines.inc.php.
¿Cómo hacerlo desde DirectAdmin?
- Inicia sesión en DirectAdmin.
- Ve a Gestionar Archivos (o File Manager). Busca la carpeta de tu dominio (normalmente
domains/tudominio.com/public_html). - Dentro, busca la carpeta
config. Ábrela. - Busca el archivo
defines.inc.php. Haz clic derecho sobre él y selecciona Editar (o Edit). - Verás muchas líneas de código. Busca esta línea (normalmente está al principio):
define('_PS_MODE_DEV_', false); - Cámbiala por:
define('_PS_MODE_DEV_', true); - Guarda el archivo (botón Guardar o Save).
Ahora, recarga tu tienda. En lugar de la pantalla blanca, verás un mensaje de error detallado en inglés, como por ejemplo:
Fatal error: Allowed memory size of 134217728 bytes exhausted...(Problema de memoria).Parse error: syntax error, unexpected...(Error en un archivo PHP, a menudo de un módulo).Fatal error: Class 'ModuleName' not found...(Módulo faltante o corrupto).
¡Esa es la pista que necesitamos! Anota el mensaje o la ruta del archivo que aparece.
[WARNING] ¡Importante! Una vez que hayas solucionado el error, vuelve a poner
falseen la línea_PS_MODE_DEV_. Si lo dejas entrue, tu tienda mostrará información sensible a los visitantes, lo cual es un riesgo de seguridad.
Paso 2: Soluciones específicas basadas en el error
Ahora que tienes el mensaje de error, aplica la solución correspondiente.
Si el error es de "Allowed memory size..."
Este es el más común. Significa que tu script necesita más memoria.
Solución desde DirectAdmin:
-
Ve a Gestionar Archivos y busca en la raíz de tu web (carpeta
public_html) el archivo.htaccess. Si no lo ves, activa la opción "Mostrar archivos ocultos" en DirectAdmin. -
Edita el archivo
.htaccess. -
Al principio del todo (antes de cualquier otra línea), pega esto:
php_value memory_limit 256M php_value max_execution_time 300 -
Guarda el archivo. Si no funciona, prueba con
512M.
Alternativa: Busca el archivo php.ini en la raíz. Si no existe, créalo. Pega dentro:
memory_limit = 256M
max_execution_time = 300
Si el error apunta a un módulo o tema (ej: "syntax error" en un archivo .php)
El error te dirá la ruta exacta, por ejemplo: /public_html/modules/mimodulo/mimodulo.php.
Solución:
- Desactiva el módulo desde la base de datos. Es más rápido que desde el panel de admin si no puedes acceder.
- Ve a phpMyAdmin en DirectAdmin (suele estar en el menú "Base de Datos" o "MySQL").
- Selecciona la base de datos de tu PrestaShop.
- Busca la tabla
ps_module(el prefijops_puede variar). - Busca el nombre del módulo problemático y cambia su campo
activede1a0.
- Renombra la carpeta del módulo. Desde el Administrador de Archivos, ve a la carpeta
/modules/, busca la carpeta del módulo que da error (ej:mimodulo) y renómbrala amimodulo_BACKUP. Esto lo desactivará por completo. - Prueba tu tienda. Si funciona, el módulo es el culpable. Puedes eliminarlo o buscar una versión actualizada.
Si el error es de "Internal Server Error" sin más pistas
Si el modo debug no muestra nada o el error persiste, el problema suele ser el archivo .htaccess.
Solución: Regenerar el .htaccess
-
En el Administrador de Archivos, localiza el archivo
.htaccessen la raíz. -
Renómbralo a
.htaccess_old(esto lo desactiva). -
Recarga tu tienda. Si ahora ves la tienda (aunque sin URLs bonitas), el
.htaccessestaba corrupto. -
Para regenerarlo, accede a tu back office de PrestaShop (ej: tudominio.com/admin1234). Ve a Configuración > Tráfico y SEO > SEO & URLs. Sin hacer ningún cambio, haz clic en Guardar en la parte inferior. Esto regenerará el archivo.
-
Si no puedes acceder al back office, puedes crear un
.htaccessbásico. Crea un nuevo archivo en la raíz llamado.htaccessy pega esto:<IfModule mod_rewrite.c> RewriteEngine On </IfModule>Luego, intenta acceder al back office y regenera el archivo desde allí.
Paso 3: Verificar permisos de archivos y carpetas
Los permisos incorrectos son otra causa frecuente. Los archivos deben tener permiso 644 y las carpetas 755.
Cómo corregirlo desde DirectAdmin:
- Ve a Gestionar Archivos y selecciona toda la carpeta de tu web (la raíz
public_html). - Arriba verás un botón que dice Cambiar permisos o Change Permissions.
- Marca las opciones para que quede así:
- Archivos: 644 (lectura y escritura para el propietario, solo lectura para el grupo y otros).
- Carpetas: 755 (lectura, escritura y ejecución para el propietario; lectura y ejecución para grupo y otros).
- Aplica los cambios. Esto arreglará todos los permisos de golpe.
[TIP] No pongas permisos 777 a todo. Es inseguro. 644 y 755 son los estándares correctos para un hosting compartido.
Paso 4: Revisar el error log del servidor (DirectAdmin)
Si nada de lo anterior funciona, el error log del servidor es tu mejor amigo. Aquí se registran todos los errores PHP.
¿Dónde encontrarlo en DirectAdmin?
-
En el menú principal de DirectAdmin, busca Gestión de Errores o Error Logs. A veces está dentro de Estadísticas Avanzadas.
-
Busca el log de tu dominio. Puede llamarse
tudominio.com.error.logoerror.log. -
Ábrelo. Busca las entradas más recientes (las de abajo del todo). Verás líneas como:
[24-Oct-2023 10:00:00] PHP Fatal error: ...Esta información es mucho más detallada que la pantalla de error. Te dirá exactamente el archivo y la línea problemática.
Preguntas Frecuentes (FAQ) sobre el error 500 en PrestaShop
P: ¿El error 500 puede borrar mis productos o clientes?
R: No. El error 500 es un error del servidor o de la ejecución del código. Tus datos (productos, clientes, pedidos) están a salvo en la base de datos. Una vez solucionado el error, todo vuelve a la normalidad.
P: He hecho todos los pasos y sigue sin funcionar. ¿Qué hago?
R: Si has llegado hasta aquí y el error persiste, el problema puede ser más profundo, como un error en la base de datos o un conflicto de PHP. Te recomiendo:
- Contactar a tu soporte de hosting. Diles que has activado el modo debug y que has revisado el error log. Dales el mensaje exacto.
- Restaurar una copia de seguridad. Si tienes una copia de seguridad reciente de tu web (desde DirectAdmin), restaurarla es la solución más rápida.
P: ¿Cómo evito que esto vuelva a pasar?
R: ¡Buena pregunta!
- Actualiza siempre PrestaShop, los módulos y el tema a sus últimas versiones.
- Haz copias de seguridad semanales desde DirectAdmin.
- No instales módulos pirata o de fuentes no confiables.
- Aumenta el límite de memoria de forma preventiva en tu
.htaccess(como vimos en el Paso 2).
P: ¿El error 500 es lo mismo que la pantalla blanca de la muerte?
R: Sí, coloquialmente se le llama así. La pantalla blanca es la manifestación visual del error 500.
Resumen rápido para solucionar el error 500
- Activar modo debug en
config/defines.inc.php(ponertrue). - Leer el mensaje de error que aparece.
- Aplicar la solución:
- ¿Memoria? -> Aumentar en
.htaccess. - ¿Módulo? -> Renombrar su carpeta.
- ¿.htaccess? -> Renombrar y regenerar.
- ¿Memoria? -> Aumentar en
- Revisar permisos de archivos (644) y carpetas (755).
- Mirar el Error Log de DirectAdmin si el error no es claro.
- Desactivar modo debug (volver a poner
false).
Espero que esta guía te haya sido de gran ayuda. Recuerda que el panel de control DirectAdmin te da todas las herramientas para gestionar tu web. Con paciencia y siguiendo estos pasos, tu tienda PrestaShop volverá a funcionar en pocos minutos. ¡Mucho ánimo!
