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
¡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