Log Boyutu
💾34 MB
227,590 satır
Toplam Log
📊32,933
Adet log entry
Kritik Hata
🔥12,021
Permission denied hatası
Diğer Hatalar
⚠️104
Çeşitli hata tipleri
📝 Basit Anlatım (Herkes İçin)
Bugün sistem log dosyası çok büyümüş (34MB). Normal bir gün için bu boyut fazla. Bunun sebebi, bazı dosyaların "açılamıyor" hatası veriyor olması. Bir dosya 12,021 kez aynı hatayı üretmiş! Sistem bu dosyayı sürekli okumaya çalışıyor ama başarısız oluyor.
Sorun nedir? Sistem dosyayı okumak için gerekli izne sahip olmasına rağmen, opcache (PHP'nin hızlandırma mekanizması) dosyayı "eski haliyle" hatırlıyor ve hata veriyor. Çözüm çok basit: opcache'i temizlemek veya Apache/PHP'yi yeniden başlatmak.
Kullanıcıyı nasıl etkiler? Şu anda ciddi bir sorun yok. Sistem çalışıyor, ama log dosyası gereksiz yere şişiyor ve disk alanı tüketiyor. Eğer bu devam ederse, log dosyası birkaç GB'a ulaşabilir.
Ne yapılmalı? PHP/Apache yeniden başlatılmalı veya composer autoload dump yapılmalı. Bu işlem 30 saniye sürer ve sorun çözülür.
🔧 Teknik Detaylar (Geliştiriciler İçin)
📁 Dosya Bilgileri
- Log Dosyası: storage/logs/laravel-2026-01-05.log
- Dosya Boyutu: 34 MB (35,651,584 bytes)
- Satır Sayısı: 227,590 satır
- Log Entry: 32,933 adet
🔴 Kritik Hata #1: RecalculateCountsCommand.php
- Hata Sayısı: 12,021 kez
- Hata Mesajı:
include(/var/www/vhosts/tuufi.com/httpdocs/vendor/composer/../../Modules/Muzibu/app/Console/Commands/RecalculateCountsCommand.php): Failed to open stream: Permission denied - Dosya:
Modules/Muzibu/app/Console/Commands/RecalculateCountsCommand.php - Dosya İzinleri:
644 tuufi.com_:psaserv (DOĞRU) - Tetikleyen: Composer ClassLoader (vendor/composer/ClassLoader.php:576)
- Neden Oluyor? Dosya izinleri doğru olmasına rağmen opcache eski (hatalı) bilgiyi cache'te tutuyor. PHP dosyayı okumak istediğinde opcache "erişilemez" diyor.
🔴 Kritik Hata #2: Authentication User Provider [legacy]
- Hata Sayısı: 59 kez
- Hata Mesajı:
Authentication user provider [legacy] is not defined. - Neden Oluyor?
config/auth.phpdosyasındalegacyprovider tanımlı değil. Eski kodda kullanılan provider kaldırılmış ama bazı yerler hala çağırıyor.
🔴 Kritik Hata #3: Class "Stancl\Tenancy\Tenant" not found
- Hata Sayısı: 20 kez
- Hata Mesajı:
Class "Stancl\Tenancy\Tenant" not found - Dosya:
app/Console/Commands/ProcessSubscriptionTransitions.php:37 - Neden Oluyor?
ProcessSubscriptionTransitionscommand'iStancl\Tenancy\Tenantclass'ını kullanmaya çalışıyor ama bu class yüklenemiyor. Muhtemelen namespace yanlış veya use statement eksik. - Etkilenen: Scheduler (saatlik cron job)
⚠️ Diğer Hatalar
- MuzibuCorporateAccountObserver.php: Permission denied (4 kez) - Aynı opcache sorunu
- PayTR Taksit Oranları: "Mağaza API yetkisi bulunmuyor" (4 kez) - Test modu API hatası
-
Subscriptions Tablosu:
auto_renewalkolonu yok (1 kez) - Migration eksik - subscription:send-reminders: Failed with exit code 1 (1 kez) - Command hatası
- subscription:process-recurring: Failed with exit code 1 (1 kez) - Command hatası
💡 Çözüm Önerileri (Öncelik Sırasıyla)
RecalculateCountsCommand.php Permission Fix
Sorun: 12,021 kez aynı hata tekrar ediyor. Log dosyasını şişiriyor.
Terminal Komutları:
composer dump-autoload php artisan config:clear php artisan cache:clear sudo systemctl reload php8.3-fpm # VEYA sudo /usr/local/psa/admin/bin/php_handler_ctl --reread
Beklenen Sonuç: Opcache temizlenir, dosya tekrar okunabilir hale gelir, hata kaybolur.
ProcessSubscriptionTransitions.php Düzeltme
Sorun: Stancl\Tenancy\Tenant class bulunamıyor (20 kez).
Düzeltme:
// app/Console/Commands/ProcessSubscriptionTransitions.php // Satır 1-10 arası use statement'lara ekle: use App\Models\Tenant; // VEYA use Stancl\Tenancy\Database\Models\Tenant; // Satır 37'de: // $tenant = Stancl\Tenancy\Tenant::find(...); // YANLIŞ $tenant = Tenant::find(...); // DOĞRU
Beklenen Sonuç: Scheduler command'i çalışır, hata kaybolur.
Authentication Provider [legacy] Kaldırma
Sorun: legacy provider tanımlı değil ama bazı yerler çağırıyor (59 kez).
Çözüm Adımları:
# 1. Nerede kullanıldığını bul:
grep -r "auth.*legacy" --include="*.php" app/ Modules/
# 2. Bulunan yerlerde 'users' provider kullan:
# Auth::guard('legacy') → Auth::guard('web')
# config('auth.providers.legacy') → config('auth.providers.users')
Beklenen Sonuç: Auth hatası kaybolur.
Subscriptions Tablosu: auto_renewal Kolonu Ekle
Sorun: subscriptions tablosunda auto_renewal kolonu yok.
Migration Oluştur:
php artisan make:migration add_auto_renewal_to_subscriptions
// Migration içeriği:
Schema::table('subscriptions', function (Blueprint $table) {
$table->boolean('auto_renewal')->default(true)->after('status');
});
php artisan migrate
Beklenen Sonuç: Subscription sorgularında hata almaz.
Log Rotasyon ve Temizlik
Sorun: Log dosyası çok büyümüş (34MB). Günlük log dosyası max 10-20MB olmalı.
Eski Log Temizleme:
# 7 günden eski logları sil:
find storage/logs/ -name "laravel-*.log" -mtime +7 -delete
# Bugünkü logu truncate et (şimdilik):
truncate -s 0 storage/logs/laravel-2026-01-05.log
# Monolog config ayarı (config/logging.php):
'daily' => [
'driver' => 'daily',
'days' => 7, // 7 gün sakla
'level' => 'debug',
]
Beklenen Sonuç: Disk alanı temizlenir, eski loglar silinir.
⚠️ Risk Analizi
🔴 Yüksek Risk
- 12,021 Permission Hatası: Her birkaç saniyede bir artıyor. Log dosyası saatte 5-10MB büyüyebilir.
- Disk Alanı: Eğer düzeltilmezse, 1-2 gün içinde log dosyası 100MB+ olabilir.
- Cron Job Hatası:
subscription:process-transitionsçalışmıyor. Otomatik abonelik yenilemeleri durabilir.
🟡 Orta Risk
- Auth Provider Hatası: Bazı kullanıcılar login olamayabilir (legacy guard kullanıyorlarsa).
- auto_renewal Kolonu: Abonelik otomatik yenileme sorguları başarısız oluyor.
🟢 Düşük Risk
- PayTR API Hatası: Test modunda olduğu için gerçek ödemeyi etkilemiyor.
- Observer Permission: Sadece 4 kez oluşmuş, kritik değil.