Laravel

Laravel Rehberi: Kurulumdan Paylaşımlı Hostingde Yayına Alma

Bu Laravel rehberi, sitedeki Laravel yazılarının merkezi. Yazıların çoğu paylaşımlı hosting üzerinde çalışan gerçek projelerden çıktı; yani buradaki sıra, “kurulum → geliştirme → yayına alma → bakım” şeklinde ilerliyor ve her adımda özellikle paylaşımlı sunucuda karşılaşılan tuzaklara yer veriyor.

Kurulum ve Temel Yapı

Uygulama Katmanı: İstek, Doğrulama, Yetki

Arka Plan İşleri ve Zamanlama

Bir Laravel projesinin canlıdaki davranışını en çok bu üç şey belirler: kuyruk, zamanlanmış görevler ve önbellek. Paylaşımlı hostingde üçünün de kendine özgü kısıtları var — daemon çalıştıramamak bunların başında gelir.

Yayına Alma ve Paylaşımlı Hosting

Laravel’i paylaşımlı hostingde yayına almak mümkün, ama varsayılan dizin yapısı buna göre tasarlanmamış. Aşağıdaki iki yazı, public klasörü sorununu ve dağıtım sonrası ilk kontrol listesini kapsıyor.

Laravel’i Paylaşımlı Hostingde Çalıştırmanın Üç Yolu

Laravel’in dizin yapısı, web sunucusunun yalnızca public klasörünü göreceğini varsayar. Paylaşımlı hostingde ise sunucu genellikle doğrudan public_html içine bakar. Üç çözüm var ve üçünün de bedeli farklı:

YöntemNasılRiski
Alt alan adına bağlamaPanelden alt alan adının kök dizinini proje/public olarak gösterinEn temizi; panel bunu desteklemiyorsa uygulanamaz
public içeriğini taşımaindex.php ve varlıkları public_html‘e alıp yolları düzeltinGüncellemede yollar tekrar bozulabilir
.htaccess ile yönlendirmeKök dizinde tüm istekleri public klasörüne yönlendirinYanlış kural, kaynak dosyaları dışarı açabilir

Hangisini seçerseniz seçin, storage ve bootstrap/cache klasörlerinin yazılabilir olması ve .env dosyasının web kökünün dışında kalması şart. Bu iki kontrolü atlayan kurulumların büyük kısmı ya beyaz sayfa verir ya da yapılandırmasını internete açar.

Dağıtım Öncesi Kontrol Listesi

  • APP_ENV=production ve APP_DEBUG=false — hata ayıklama açık kalırsa yığın izi ziyaretçiye görünür.
  • APP_KEY üretilmiş mi — eksikse oturum ve şifreleme çalışmaz.
  • Veritabanı bilgileri canlı sunucununki mi, yerelde kalan değerler taşınmış mı.
  • Önbellekler temizlendi mi: config, route ve view önbelleği eski değerleri saklar.
  • Zamanlanmış görevler için sunucuda tek bir cron satırı tanımlandı mı.
  • Kuyruk kullanılıyorsa işçinin nasıl tetikleneceği belirlendi mi (daemon yoksa cron ile).
  • Loglar dönüyor mu — tek dosyaya yazan bir günlük, aylar içinde diski doldurabilir.

Bu Rehber Kimin İçin?

Yazıların hepsi, kurumsal bir sunucu ekibi olmayan geliştiriciler düşünülerek yazıldı: tek başına ya da küçük bir ekiple çalışan, projesini çoğunlukla paylaşımlı hosting ya da küçük bir VPS üzerinde yayınlayan kişiler. Bu yüzden her adımda “ideal yapılandırma” değil, o ortamda gerçekten uygulanabilir olan anlatılıyor. Sayfa yeni Laravel yazıları eklendikçe güncelleniyor.

Paylaşımlı Hostingde En Sık Üç Tuzak

1. Composer’ı sunucuda çalıştıramamak. Birçok paylaşımlı pakette SSH yok ya da bellek limiti composer install için yetersiz. Çözüm, bağımlılıkları yerelde kurup vendor klasörünü birlikte yüklemek.

2. Önbelleği temizlemeden dağıtmak. config:cache ve route:cache eski değerleri saklar; yeni .env yüklendiği halde uygulama eskisini okumaya devam eder.

3. Kuyruk işçisinin sürekli çalıştığını varsaymak. Daemon çalıştıramadığınız ortamlarda kuyruğu cron ile tetiklemek gerekir; aksi halde işler sessizce birikir.

Sık Sorulan Sorular

Laravel paylaşımlı hostingde gerçekten çalışır mı?

Çalışır, ama iki koşulla: PHP sürümü kullandığınız Laravel sürümünün istediği minimumu karşılamalı ve public klasörü sorununu yukarıdaki üç yöntemden biriyle çözmelisiniz. Kuyruk işçisi ve WebSocket gibi sürekli çalışan süreçler gerektiren özellikler ise paylaşımlı ortamda ya kısıtlı çalışır ya da hiç çalışmaz.

Yerelde çalışan proje canlıda neden 500 veriyor?

En sık üç sebep: storage ve bootstrap/cache klasörlerinin yazma izni olmaması, .env dosyasının yüklenmemiş olması ve eski config önbelleğinin canlıya taşınmış olması. Üçü de aynı belirtiyi verdiği için log dosyasına bakmadan tahmin yürütmek zaman kaybıdır.

Composer sunucuda çalışmıyorsa ne yapmalı?

Bağımlılıkları yerel makinenizde --no-dev --optimize-autoloader ile kurup vendor klasörünü projeyle birlikte yükleyin. Yerel PHP sürümünüzün sunucudakiyle uyumlu olmasına dikkat edin; aksi halde kurulan paketler sunucuda hata verir.

Değişiklik yaptım ama canlıda görünmüyor, neden?

Önbellek yalnız olası nedenlerden biridir; doğru release/alan adı, OPcache, CDN ve tarayıcı önbelleğini de kontrol edin. SSH yoksa hostingin güvenli terminal/görev aracı veya destek ekibini kullanın. İnternete açık artisan/bakım rotası eklemek sırları ifşa edebilir; önerilen dağıtım yolu değildir.

Resmî kaynak: Laravel 13.x dağıtım dokümantasyonu

Kaynaklar ve İleri Okuma

Resmî dokümantasyon

Sitedeki ilgili rehberler

Web kökü yalnız public içeriğini sunmalıdır. Bütün projeyi public_html içine koyup yalnız rewrite kuralına güvenmeyin; .env, vendor, storage/logs ve yedeklerin URL’den erişilemediğini doğrulayın. Vendor’ı hedef PHP sürümü ve uzantılarıyla uyumlu ortamda composer.lock üzerinden üretin; platform gereksinimlerini atlamayın. Mevcut APP_KEY’i her dağıtımda yeniden üretmek şifrelenmiş veriyi ve oturumları bozabilir. Cron ile queue çalıştırırken çakışmayı, tekrar deneme ve maksimum iş süresini sınırlayın.

özgür BAYRAM

Özgür Bayram, WordPress, Laravel, yapay zekâ ve web performansı alanlarında çalışan bir yazılım geliştiricisidir. Bilim Meraklısı’nda teknoloji, yazılım, hosting, SEO ve dijital araçlar hakkında anlaşılır, uygulanabilir rehberler hazırlar. Amacı, teknik konuları sade bir dille anlatarak okuyucuların doğru kararlar vermesine ve sorunlarını güvenle çözmesine yardımcı olmaktır.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu