🚨 Kritik Sorun 8 Ocak 2026

Muzibu.com.tr - Neden Veriler Gözükmüyor?

Multi-tenant sistemde kritik yapılandırma hatası tespit edildi. Site central database'den veri çekiyor, tenant database'ine erişemiyor.

📝 Basit Anlatım (Herkes İçin)

Sorun Ne?

Muzibu.com.tr sitesi şu anda "yanlış depoya" bakıyor. Şarkılar, albümler, sanatçılar ayrı bir depoda (tenant database) ama site merkezi depoya (central database) bakıyor. Bu yüzden hiçbir şey gözükmüyor.

Neden Oldu?

Sistem yapılandırma dosyasında (.env) yanlış ayarlar var:

  • APP_DOMAIN=localhost → Olması gereken: muzibu.com
  • TENANT_PARENT_DOMAIN=muzibu.com → Olması gereken: tuufi.com

Bu ayarlar yüzünden sistem "muzibu.com merkezi site" sanıyor, tenant sistemine geçmiyor.

Sonuç?

  • Yeni eklenen şarkılar gözükmüyor
  • Albümler gözükmüyor
  • Sanatçılar gözükmüyor
  • Tüm muzibu-özel içerikler kayıp görünüyor

Not: Veriler kaybolmadı! Sadece yanlış depoya bakıyoruz. Doğru depoya yönlendiğimizde her şey çalışacak.

🔧 Teknik Detaylar (Geliştiriciler İçin)

📊 Mevcut Durum

Current Context: Central (olması gereken: Tenant 1001)
Database: tuufi_4ekim (olması gereken: tenant_muzibu_1528d0)
Tenant Record: ID: 1001, Domains: muzibu.com, www.muzibu.com
Domain Mapping: muzibu.com → tenant_id: 1001

⚠️ Yapılandırma Hataları

1. .env Dosyası:

❌ APP_DOMAIN=localhost
✅ Olmalı: APP_DOMAIN=muzibu.com
❌ TENANT_PARENT_DOMAIN=muzibu.com
✅ Olmalı: TENANT_PARENT_DOMAIN=tuufi.com

2. Config Sonucu:

config('tenancy.central_domains') = ['localhost', 'www.localhost']
config('tenancy.parent_domain') = 'muzibu.com'
⚠️ Bu ayarlar "muzibu.com = central" algısı yaratıyor

📁 İlgili Dosyalar

/var/www/vhosts/muzibu.com/httpdocs/.env → Yapılandırma dosyası (düzeltilecek)
config/tenancy.php → Tenant sistemi config (central_domains, parent_domain)
app/Http/Kernel.php → Middleware config (InitializeTenancyByDomain)
app/Providers/TenancyServiceProvider.php → Tenant başlatma mantığı

🔄 Tenant Sistemi Mantığı

Normal Akış (Beklenen):

  1. Kullanıcı muzibu.com adresine girer
  2. Middleware: InitializeTenancyByDomain devreye girer
  3. Domain central_domains içinde mi kontrol eder → Hayır
  4. Database'de domain'i arar: domains tablosu
  5. Domain bulunur → tenant_id: 1001
  6. Tenant initialize edilir → Database: tenant_muzibu_1528d0
  7. Tüm sorgular tenant database'e gider ✅

Mevcut Durum (Hatalı):

  1. Kullanıcı muzibu.com adresine girer
  2. Middleware: InitializeTenancyByDomain devreye girer
  3. Domain central_domains içinde mi kontrol eder → Evet sanıyor! (APP_DOMAIN etkisi)
  4. Tenant initialize edilmez ❌
  5. Central context'te kalır → Database: tuufi_4ekim
  6. Tenant verileri bulunamaz (songs, albums, artists yok) ❌

💡 Çözüm Önerileri

Öneri 1: .env Dosyasını Düzelt (ÖNERİLEN)

En hızlı ve güvenli çözüm

📝 Basit Açıklama:

Sistem yapılandırma dosyasında iki satırı değiştireceğiz. Bu değişiklikle sistem "muzibu.com tenant sitesi" olarak algılayacak ve doğru depoya (tenant database) bağlanacak.

🔧 Yapılacak Değişiklik:

# Eski (Yanlış)
APP_DOMAIN=localhost
# Yeni (Doğru)
APP_DOMAIN=muzibu.com
# Eski (Yanlış)
TENANT_PARENT_DOMAIN=muzibu.com
# Yeni (Doğru)
TENANT_PARENT_DOMAIN=tuufi.com

⚡ Sonrası:

# Cache temizle
php artisan config:clear
php artisan cache:clear
php artisan responsecache:clear

✅ Avantajlar:

  • 5 dakikada tamamlanır
  • Hiçbir veri kaybı yok
  • Geri dönüşü kolay (eski değerleri geri yazarsan)
  • Database değişikliği YOK
  • Risk seviyesi: Çok düşük
🔵

Öneri 2: Central'a Ayrı Tenant Oluştur

Alternatif çözüm (daha karmaşık)

📝 Basit Açıklama:

Merkezi site (tuufi.com) için de ayrı bir "tenant" oluşturacağız. Böylece hem tuufi.com hem muzibu.com tenant olarak çalışır. Ama bu daha karmaşık bir işlem.

🔧 Yapılacaklar:

  1. Tenant ID=1 için ayrı database oluştur (tenant_tuufi)
  2. Central verileri yeni tenant database'e migrate et
  3. Domain kayıtları: tuufi.com, www.tuufi.com → tenant_id: 1
  4. central_domains config'den kaldır (boş bırak)
  5. Tüm siteleri tenant olarak çalıştır

⚠️ Dikkat Edilmesi Gerekenler:

  • Veri taşıma işlemi gerekir (migration)
  • AI sistemi central'da çalışıyor (tenant'a uyarlanmalı)
  • Subscription sistemi central'da (tenant'a uyarlanmalı)
  • Test süreci daha uzun (2-3 saat)
  • Geri dönüşü zor

❌ Dezavantajlar:

  • Karmaşık veri taşıma işlemi
  • Merkezi AI sistemi tenant'a uyarlanmalı
  • Subscription sistemi yeniden yapılandırılmalı
  • 1-2 gün sürebilir
  • Risk seviyesi: Yüksek
🔄

Öneri 3: Hybrid Yaklaşım (Gelecek İçin)

Mevcut sorunu çözmez, ama uzun vadeli plan

📝 Basit Açıklama:

Bazı veriler merkezi (central) kalsın (AI, subscription), bazı veriler tenant'a özel olsun (içerik, ürünler). İki sistemi birlikte kullan.

Merkezi (Central) Kalacaklar:

  • AI sistemi (tüm tenant'lar ortak kullanır)
  • Subscription/payment sistemi
  • Tenant yönetimi
  • Sistem admin'leri

Tenant'a Özel Kalacaklar:

  • Şarkılar, albümler, sanatçılar (muzibu)
  • Ürünler, kategoriler (ixtif)
  • Blog, sayfa içerikleri
  • Kullanıcılar, roller
  • Medya dosyaları
Not: Bu yaklaşım mevcut mimariyi destekliyor, ama muzibu.com'nin şu anki sorununu çözmüyor. Önce Öneri 1 veya 2 uygulanmalı.

📊 Çözüm Karşılaştırması

Kriter Öneri 1: .env Düzelt Öneri 2: Central Tenant
Süre 5 dakika 1-2 gün
Karmaşıklık Çok basit Karmaşık
Risk Çok düşük Yüksek
Veri Taşıma Gerek yok Gerekli
Geri Dönüş Çok kolay Zor
Sistem Değişikliği Minimal Büyük
Uzun Vadeli Kalıcılık Evet (mevcut mimari) Evet (yeni mimari)

💡 Öneri:

Öneri 1 (.env düzeltme) ile başlayın. Sistem hemen çalışır hale gelir. Daha sonra, gerekirse ve yeterli test ortamı hazırlandığında Öneri 2'ye geçilebilir.

🎯 Sonuç ve Öneriler

Sorunun Özeti:

Muzibu.com.tr tenant database'ine erişemiyor çünkü sistem yapılandırması "muzibu.com = merkezi site" algısı yaratıyor. APP_DOMAIN ve TENANT_PARENT_DOMAIN değişkenleri yanlış ayarlanmış.

En Hızlı Çözüm:

  1. .env dosyasında 2 satırı düzelt (APP_DOMAIN, TENANT_PARENT_DOMAIN)
  2. Config cache'i temizle
  3. Siteyi test et
  4. Şarkılar, albümler, sanatçılar gözükecek ✅

Uzun Vadeli Plan:

İlerleyen zamanda, test ortamında Öneri 2 (central tenant) veya Öneri 3 (hybrid) denenebilir. Ama öncelik şu an çalışan bir sistem elde etmek olmalı.

⚠️ Önemli Not:

Değişiklikleri yapmadan önce mevcut .env dosyasının yedeğini alın. Herhangi bir sorun çıkarsa geri dönüş mümkün olsun.