Saltar al contenido principal

Errores 500 y Depuración

Cómo diagnosticar y solucionar Errores 500 de Servidor Interno.


Paso 1: Revisar el Registro

El paso más importante. Laravel registra todos los errores en:

tail -100 storage/logs/laravel.log

Esto te mostrará el mensaje de error exacto, el archivo y el número de línea.


Paso 2: Habilitar el Modo de Depuración (¡Temporalmente!)

APP_DEBUG=true

Actualiza la página -- verás una página de error detallada con:

  • Mensaje de error
  • Traza de pila
  • Detalles de la solicitud
  • Información del entorno
aviso

¡Establece APP_DEBUG=false inmediatamente después de depurar!


Errores 500 Comunes

"The stream or file could not be opened"

Causa: Problema con los permisos de almacenamiento.

sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache

"No application encryption key has been specified"

Causa: APP_KEY faltante o inválida.

php artisan key:generate

"SQLSTATE[HY000] Connection refused"

Causa: La conexión a la base de datos falló.

Comprueba la configuración de la base de datos en .env y asegúrate de que MySQL esté funcionando.

"Class 'X' not found"

Causa: Dependencias de Composer faltantes.

composer install --no-dev --optimize-autoloader
php artisan config:clear

"View [x] not found"

Causa: Archivo de vista faltante o dañado.

php artisan view:clear

Si el archivo genuinamente falta, vuelve a subirlo desde el paquete original.

"Maximum execution time exceeded"

Causa: Operación de larga duración (copia de seguridad, migración, análisis de IA).

Aumenta el tiempo de espera de PHP:

max_execution_time = 300

Recopilar Información de Depuración para Soporte

Al reportar un error, incluye:

php -v                          # Versión de PHP
php artisan --version # Versión de Laravel
mysql --version # Versión de MySQL
cat .env | grep -E "^(APP_|DB_|MAIL_|QUEUE_)" # Configuración (¡sin contraseñas!)
tail -50 storage/logs/laravel.log # Errores recientes

Próximos Pasos