500 Hataları ve Hata Ayıklama
500 Dahili Sunucu Hatalarını nasıl tanımlayacağınız ve düzelteceğiniz.
Adım 1: Günlüğü Kontrol Edin
En önemli adım. Laravel tüm hataları şuraya kaydeder:
tail -100 storage/logs/laravel.log
Bu, tam hata mesajını, dosyayı ve satır numarasını gösterir.
Adım 2: Hata Ayıklama Modunu Etkinleştirin (Geçici!)
APP_DEBUG=true
Sayfayı yenileyin -- aşağıdakileri içeren ayrıntılı bir hata sayfası göreceksiniz:
- Hata mesajı
- Yığın izi
- İstek ayrıntıları
- Ortam bilgisi
Hata ayıklamadan hemen sonra APP_DEBUG=false olarak ayarlayın!
Yaygın 500 Hataları
"The stream or file could not be opened" (Akış veya dosya açılamadı)
Neden: Depolama izinleri sorunu.
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache
"No application encryption key has been specified" (Uygulama şifreleme anahtarı belirtilmedi)
Neden: APP_KEY eksik veya geçersiz.
php artisan key:generate
"SQLSTATE[HY000] Connection refused" (Bağlantı reddedildi)
Neden: Veritabanı bağlantısı başarısız.
.env veritabanı ayarlarını kontrol edin ve MySQL'in çalıştığından emin olun.
"Class 'X' not found" ('X' sınıfı bulunamadı)
Neden: Eksik Composer bağımlılıkları.
composer install --no-dev --optimize-autoloader
php artisan config:clear
"View [x] not found" ('[x] görünümü bulunamadı)
Neden: Eksik veya bozuk görünüm dosyası.
php artisan view:clear
Dosya gerçekten eksikse orijinal paketten yeniden yükleyin.
"Maximum execution time exceeded" (Maksimum çalışma süresi aşıldı)
Neden: Uzun süren işlem (yedekleme, taşıma, yapay zeka analizi).
PHP zaman aşımını artırın:
max_execution_time = 300
Destek İçin Hata Ayıklama Bilgisi Toplama
Bir hata bildirirken şunları ekleyin:
php -v # PHP sürümü
php artisan --version # Laravel sürümü
mysql --version # MySQL sürümü
cat .env | grep -E "^(APP_|DB_|MAIL_|QUEUE_)" # Yapılandırma (şifreler hariç!)
tail -50 storage/logs/laravel.log # Son hatalar