Erreurs 500 et Débogage
Comment diagnostiquer et corriger les erreurs 500 Internal Server Error.
Étape 1 : Vérifier le journal
L'étape la plus importante. Laravel enregistre toutes les erreurs dans :
tail -100 storage/logs/laravel.log
Cela vous montrera le message d'erreur exact, le fichier et le numéro de ligne.
Étape 2 : Activer le mode débogage (temporairement !)
APP_DEBUG=true
Rechargez la page -- vous verrez une page d'erreur détaillée avec :
- Message d'erreur
- Stack trace
- Détails de la requête
- Informations sur l'environnement
Remettez APP_DEBUG=false immédiatement après le débogage !
Erreurs 500 courantes
"The stream or file could not be opened"
Cause : Problème de permissions sur le stockage.
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache
"No application encryption key has been specified"
Cause : APP_KEY manquant ou invalide.
php artisan key:generate
"SQLSTATE[HY000] Connection refused"
Cause : Échec de connexion à la base de données.
Vérifiez les paramètres de base de données dans .env et assurez-vous que MySQL est en cours d'exécution.
"Class 'X' not found"
Cause : Dépendances Composer manquantes.
composer install --no-dev --optimize-autoloader
php artisan config:clear
"View [x] not found"
Cause : Fichier de vue manquant ou corrompu.
php artisan view:clear
Si le fichier est réellement manquant, re-téléversez-le depuis le package d'origine.
"Maximum execution time exceeded"
Cause : Opération longue (sauvegarde, migration, analyse IA).
Augmentez le délai d'expiration PHP :
max_execution_time = 300
Collecte des informations de débogage pour le support
Lors du signalement d'un bogue, incluez :
php -v # Version PHP
php artisan --version # Version Laravel
mysql --version # Version MySQL
cat .env | grep -E "^(APP_|DB_|MAIL_|QUEUE_)" # Config (sans les mots de passe !)
tail -50 storage/logs/laravel.log # Erreurs récentes