Ana içeriğe geç

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
uyarı

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

Sonraki Adımlar