Error 500 en Laravel en cPanel y Webuzo: causas y solución

Equipo Técnico de Hosting Perú Equipo Técnico de Hosting Perú Publicado: 26 oct 2026 Lectura: 8 min
Equipo Técnico de Hosting Perú

Publicado el

Un error 500 en Laravel solo dice que algo falló en el servidor, no qué. En esta guía aprendes a encontrar el mensaje real sin acceso SSH, desde el panel de cPanel o Webuzo, y a resolver las causas que más vemos al publicar un proyecto Laravel en hosting compartido.

Probado por nuestro equipo: provocamos a propósito cada una de estas causas en Laravel 13.38 con PHP 8.4, en cPanel 138 y en Webuzo 4.8, y copiamos los mensajes exactos que aparecen en los logs · octubre de 2026.

Paso 1: Encuentra el mensaje real del error

Con APP_DEBUG=false (lo correcto en producción) el visitante solo ve «Server Error» o una página en blanco. El detalle queda en uno de estos dos archivos, que puedes abrir con el Administrador de archivos de tu panel:

Qué ves en el navegadorDónde está el detalleQué tipo de fallo es
Página de Laravel «500 Server Error»laravel/storage/logs/laravel.logLaravel arrancó y falló después: base de datos, APP_KEY, permisos
Página en blanco con error 500El log de PHP de tu cuenta:
cPanel: logs/php.error.log
Webuzo: tuusuario_php84.error.log (en tu carpeta de inicio)
Laravel ni siquiera pudo arrancar: rutas, vendor, caché de configuración, versión de PHP
Lee la primera línea del error, no la última. En nuestras pruebas, tras el error principal solía aparecer otro secundario, Cannot modify header information - headers already sent. Ese es una consecuencia, no la causa.
No dejes APP_DEBUG=true en producción. Muestra a cualquier visitante datos internos de tu aplicación. La documentación de Laravel indica que en producción debe estar siempre en false. Los logs te dan la misma información sin exponerla.

Causas del error 500 y cómo resolverlas

1. La versión de PHP del hosting no es la del proyecto

Dónde aparece: log de PHP. Mensaje:

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.4.1". You are running 8.2.35.

Causa: preparaste el proyecto en tu computadora con una versión de PHP más nueva que la del dominio. En cPanel lo vimos como error 500; en Webuzo, como error 503.

Solución: en MultiPHP Manager (cPanel: «Administrador MultiPHP») elige la misma versión con la que preparaste el proyecto. Para Laravel 13 necesitas PHP 8.3 o superior; consulta la tabla de compatibilidad Laravel y PHP.

2. En cPanel: copiaste el .htaccess de Laravel y se perdió la versión de PHP

Síntoma: todo iba bien y, al subir el .htaccess de Laravel a public_html, aparece el error 500 del caso anterior. Causa: cPanel guarda la versión de PHP del dominio dentro de ese mismo .htaccess; al reemplazarlo, el dominio vuelve a la versión por defecto del servidor. Solución: vuelve a elegir la versión en el Administrador MultiPHP: cPanel añade su bloque al final del .htaccess de Laravel sin estropearlo.

3. Los datos de la base de datos son incorrectos

Dónde aparece: laravel.log. Mensaje:

SQLSTATE[HY000] [1045] Access denied for user 'tuusuario_app'@'localhost' (using password: YES)

Causa: contraseña equivocada o nombre de usuario incompleto. Un descuido frecuente: cPanel y Webuzo anteponen tu usuario al nombre de la base y del usuario (app pasa a ser tuusuario_app). Con el nombre corto el mensaje es el mismo, con 'app'@'localhost'.

Solución: revisa en laravel/.env las líneas DB_DATABASE, DB_USERNAME y DB_PASSWORD con el nombre completo. Si no recuerdas la contraseña, cámbiala desde el panel (cPanel: Manage My Databases; Webuzo: Bases de datos) y cópiala de nuevo en el .env.

4. Falta la APP_KEY o no se subió el archivo .env

Dónde aparece: laravel.log. Mensaje:

No application encryption key has been specified.

Causa: la línea APP_KEY está vacía o el archivo .env no llegó al servidor (es un archivo oculto y muchos programas de compresión lo omiten). En nuestras pruebas, ambos casos dieron exactamente este mensaje.

Solución: en el Administrador de archivos activa Mostrar archivos ocultos y comprueba que existe laravel/.env. Si falta la clave, genérala en tu computadora y pégala en el .env del servidor:

php artisan key:generate --show

Si tu aplicación ya tenía usuarios, usa la misma clave que antes: con una clave nueva se pierden las sesiones y los datos cifrados con la anterior.

5. La carpeta storage no tiene permiso de escritura

Dónde aparece: laravel.log. Mensaje:

tempnam(): file created in the system's temporary directory

Causa: Laravel necesita escribir en storage y bootstrap/cache, como indica su documentación de despliegue. Al cambiar permisos a mano (por ejemplo, a 555) deja de poder compilar las vistas.

Solución: con la opción Permisos del Administrador de archivos pon 755 en las carpetas de storage y bootstrap/cache. No uses 777: en nuestros servidores PHP se ejecuta con tu propio usuario, así que 755 basta, y 777 permite que otros escriban en tus archivos.

6. Falta la carpeta vendor o está incompleta

Dónde aparece: log de PHP (página en blanco). Mensaje:

PHP Fatal error: Uncaught Error: Failed opening required '/home/tuusuario/public_html/../laravel/vendor/autoload.php'

Causa: en un hosting sin terminal no se puede ejecutar composer install, así que vendor debe subirse desde tu computadora, y a veces la subida queda a medias.

Solución: en tu computadora ejecuta composer install --no-dev --optimize-autoloader, comprime de nuevo el proyecto y vuelve a subirlo. Te lo explicamos en cómo subir Laravel a cPanel y Webuzo.

7. Subiste la caché de configuración de tu computadora

Dónde aparece: log de PHP (página en blanco). Mensaje (con las rutas de tu computadora):

PHP Fatal error: Uncaught UnexpectedValueException: There is no existing directory at "/Users/miusuario/proyectos/mi-app/storage/logs" and it could not be created: Permission denied

Causa: ejecutaste php artisan config:cache (u optimize) en tu computadora y subiste el archivo bootstrap/cache/config.php, que guarda las rutas de tu máquina. La documentación de Laravel recomienda no ejecutar ese comando durante el desarrollo local.

Solución: con el Administrador de archivos borra laravel/bootstrap/cache/config.php (y, si existen, los archivos routes-*.php y events.php de esa carpeta). No borres packages.php ni services.php.

8. Una ruta mal escrita en public_html/index.php

Dónde aparece: log de PHP (página en blanco). Mensaje: el mismo Failed opening required del caso 6, pero con la ruta mal escrita (por ejemplo, /../laravell/vendor/autoload.php).

Solución: abre public_html/index.php y comprueba que las tres rutas apunten a la carpeta real del proyecto (/../laravel/ si lo subiste a /home/tuusuario/laravel).

¿Las páginas internas dan 404 pero la portada funciona? No es un error 500: falta el archivo oculto public_html/.htaccess que envía las rutas a Laravel. Actívalo con Mostrar archivos ocultos y cópialo desde laravel/public.

Lo corregí y sigue el error: espera un minuto

Los servidores guardan en memoria el código PHP ya cargado (OPcache) para ir más rápido. En nuestras pruebas, Webuzo detectó los cambios en archivos .php en unos 2 segundos y cPanel tardó hasta 60 segundos. Si acabas de corregir un archivo, espera un minuto antes de dar por fallida la solución. Los cambios en el .env se aplican de inmediato, siempre que no haya caché de configuración (causa 7).

Lista de comprobación rápida

Revisa en este orden
  • ¿La versión de PHP del dominio es la misma con la que preparaste el proyecto?
  • ¿Existen laravel/.env y laravel/vendor/autoload.php?
  • ¿APP_KEY tiene valor y APP_DEBUG=false?
  • ¿Los datos de la base de datos llevan el prefijo tuusuario_?
  • ¿storage y bootstrap/cache tienen permisos 755?
  • ¿Hay un config.php en laravel/bootstrap/cache que no generaste en el servidor?
  • ¿Las rutas de public_html/index.php apuntan a /../laravel/?
¿Necesitas ayuda con tu Laravel?

Hosting con varias versiones de PHP por dominio y soporte en español que revisa contigo los logs.

Ver planes de hosting

Preguntas frecuentes

Porque el fallo ocurrió antes de que Laravel arrancara (por ejemplo, falta vendor o hay una ruta mal escrita en index.php), así que Laravel no pudo mostrar su página de error. El detalle está en el log de PHP de tu cuenta.
En nuestros servidores, en cPanel está en logs/php.error.log dentro de tu carpeta de inicio, y en Webuzo en tuusuario_php84.error.log (el número cambia según tu versión de PHP), también en tu carpeta de inicio. Ábrelos con el Administrador de archivos.
No. Todas las soluciones de esta guía se aplican con el Administrador de archivos, MultiPHP Manager y la sección de bases de datos del panel. Lo que necesites ejecutar con php artisan, como generar la clave, se hace en tu computadora.
Es posible, pero no lo recomendamos: mientras esté activo, cualquier visitante puede ver datos internos de tu aplicación. Revisa primero laravel.log y el log de PHP, que tienen la misma información sin exponerla.

Fuentes

Pruebas realizadas el 26 de octubre de 2026 en servidores de hosting.com.pe.

¿Necesitas hosting rápido y con soporte en español?

Hosting optimizado, SSL gratis y soporte técnico 24/7 desde Perú.

Ver planes de Hosting
Equipo Técnico de Hosting Perú
Equipo Técnico de Hosting Perú

Administramos servidores cPanel/WHM y VPS AlmaLinux para empresas peruanas desde hace 19 años.