hosting

Modern PHP Framework'leri Paylaşımlı Hostingde Çalışır mı?

Laravel ve Symfony gibi framework'leri paylaşımlı hostingde çalıştırma: dizin yapısı, bağımlılık yönetimi, komut satırı alternatifleri. Modern PHP…

Modern PHP Framework'leri Paylaşımlı Hostingde Çalışır mı?
İçindekiler
  1. Birinci Engel: Dizin Yapısı
  2. Üç Çözüm
  3. İkinci Engel: Bağımlılık Yönetimi
  4. Üçüncü Engel: Komut Satırı Görevleri
  5. Dördüncü Engel: Ortam Değişkenleri
  6. Performans Notları
  7. Ne Zaman Paylaşımlı Yetmez?
  8. Sonuç
  9. Sıkça Sorulan Sorular (SSS)
  10. Laravel paylaşımlı hostingde çalışır mı?
  11. Sunucuda paket yöneticisi çalıştıramıyorum
  12. Uygulamam paylaşımlı hostingde yavaş çalışıyor
  13. Yapılandırma dosyam güvende mi?

Modern PHP Framework'leri Paylaşımlı Hostingde Çalışır mı?

Laravel, Symfony veya benzeri bir framework ile yazılmış bir uygulamayı paylaşımlı barındırmaya kurmak, klasik bir PHP sitesi kurmaktan farklıdır. Bu framework'ler belirli bir dizin yapısı, komut satırı erişimi ve bağımlılık yönetimi bekler — paylaşımlı ortam bunların bazılarını kısıtlar.

Bu rehber, Linux barındırma hesabında modern bir PHP uygulamasını çalıştırmanın yollarını ve sınırlarını anlatıyor.

Birinci Engel: Dizin Yapısı

Modern framework'ler bir güvenlik ilkesiyle tasarlanmıştır: yalnızca giriş dosyası web'den erişilebilir olmalı, uygulama kodu ve yapılandırma dosyaları web kökünün dışında durmalıdır.

Bu yüzden proje yapısında ayrı bir genel dizin bulunur ve web sunucusunun kök dizini oraya işaret etmelidir. Paylaşımlı barındırmada ise hesabınızın web kökü sabittir.

Üç Çözüm

  1. Web kökünü değiştirmek. Paneliniz alan adının kök dizinini değiştirmenize izin veriyorsa en temiz çözüm budur. Projeyi hesabınıza yükleyip kök dizini projenin genel klasörüne yönlendirin.
  2. Genel dizin içeriğini köke taşımak. Giriş dosyasını ve varlıkları web köküne, geri kalan her şeyi bir üst dizine koyup giriş dosyasındaki yolları güncellemek. Çalışır ama güncellemelerde dikkat gerektirir.
  3. Yönlendirme kuralıyla çözmek. Kök dizine, tüm istekleri genel klasöre yönlendiren bir kural koymak. En az tercih edilmesi gereken yöntemdir — uygulama dosyaları teknik olarak web kökü altında kalır ve yanlış bir kural onları erişilebilir kılabilir.

Üçüncü yöntemi kullanmak zorundaysanız, uygulama dizinlerine web erişimini ayrıca engelleyen kurallar ekleyin ve bunu test edin — tarayıcıdan yapılandırma dosyanızın adresini açmayı deneyin.

İkinci Engel: Bağımlılık Yönetimi

Modern PHP projeleri bağımlılıklarını bir paket yöneticisiyle yönetir. Paylaşımlı barındırmada komut satırı erişimi kısıtlı veya hiç olmayabilir.

Çözüm basittir: bağımlılıkları yerel makinenizde kurun ve üretim için hazırlanmış hâliyle yükleyin. Sunucuda paket yöneticisi çalıştırmanıza gerek kalmaz.

Bu yaklaşımın ek bir avantajı vardır: üretim kurulumunda geliştirme bağımlılıkları dışarıda bırakılır ve otomatik yükleyici optimize edilir — sunucuda kurulum yapmaya göre hem daha küçük hem daha hızlı bir sonuç elde edersiniz.

Üçüncü Engel: Komut Satırı Görevleri

Framework'ler bakım ve kurulum işlerini komut satırı araçlarıyla yapar: veritabanı şema güncellemeleri, önbellek temizliği, kuyruk işleme.

İhtiyaç Paylaşımlı hostingde çözüm
Şema güncellemesi SSH varsa komutla; yoksa dökümü elle aktar
Önbellek temizliği Önbellek dizinini elle boşalt
Zamanlanmış görevler Panelden cron tanımla, tam yol kullan
Kuyruk işleme Sürekli çalışan işçi yerine periyodik görev
Varlık derleme Yerelde derle, derlenmiş hâlini yükle

Dördüncü satır önemli bir kısıttır: paylaşımlı barındırmada sürekli çalışan arka plan işçisi tutamazsınız. Kuyruk kullanan bir uygulamayı periyodik görevlerle çalıştırmak mümkündür ama gerçek zamanlı işleme gerektiren senaryolarda yetersiz kalır.

Dördüncü Engel: Ortam Değişkenleri

Modern framework'ler yapılandırmayı ortam değişkenlerinden veya özel bir dosyadan okur. Bu dosya veritabanı parolası ve uygulama anahtarı içerir.

İki kritik nokta:

  • Bu dosya web'den erişilebilir olmamalıdır. Web kökünde duruyorsa ve sunucu onu metin olarak sunuyorsa, tüm kimlik bilgileriniz internete açıktır. Dizin yapısı doğru kurulduysa zaten kök dışında kalır; kuramadıysanız erişimini yönlendirme kuralıyla engelleyin ve tarayıcıdan test edin.
  • Sürüm kontrolüne girmemelidir. Depoya bir kez giren parola geçmişte kalır; silmek yetmez, değiştirmek gerekir.

Performans Notları

Modern framework'ler klasik PHP betiklerine göre her istekte daha fazla dosya yükler. Paylaşımlı barındırmada bu, hissedilir bir yavaşlık üretebilir. Üç önlem:

  1. Üretim modunda çalıştırın. Hata ayıklama modu açık bırakılmış bir framework belirgin biçimde yavaştır ve hata mesajlarıyla bilgi sızdırır. Bu, en sık yapılan hatadır.
  2. Framework önbelleklerini üretin. Yapılandırma, rota ve görünüm önbellekleri, her istekte yapılan işi ortadan kaldırır. Dağıtım sürecinizin parçası olmalıdır.
  3. Bayt kodu önbelleğini doğrulayın. Çok sayıda dosya yükleyen uygulamalarda etkisi en yüksek olan ayardır. Panelinizde etkin olduğundan emin olun.

Ne Zaman Paylaşımlı Yetmez?

Şu ihtiyaçlar varsa kendi sunucunuza geçmeniz gerekir:

  • Sürekli çalışan kuyruk işçileri veya arka plan servisleri
  • Bellek tabanlı önbellek deposu (paylaşımlı ortamda genellikle sunulmaz)
  • Gerçek zamanlı bağlantı gerektiren özellikler
  • Sunucu düzeyinde yapılandırma gerektiren bileşenler
  • Otomatik dağıtım hattı kurma ihtiyacı

Bunlar yoksa modern bir PHP uygulaması paylaşımlı barındırmada gayet iyi çalışır — özellikle içerik ağırlıklı ve orta trafikli projelerde.

Sonuç

Modern PHP framework'leri paylaşımlı barındırmada çalışır, ancak dört noktada dikkat gerektirir: dizin yapısını doğru kurmak, bağımlılıkları yerelde hazırlayıp yüklemek, komut satırı işlerine alternatif bulmak ve yapılandırma dosyasını web erişiminden korumak. Bunlardan en kritiği sonuncusudur — web'den okunabilen bir yapılandırma dosyası, veritabanı parolanızı internete açar. Kurulumdan sonra tarayıcıdan o dosyanın adresini açmayı deneyin; boş bir sayfa yerine içerik görüyorsanız acil müdahale gerekir.

Sıkça Sorulan Sorular (SSS)

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

Evet, dizin yapısı doğru kurulduğunda çalışır. Sınırlar, sürekli çalışan kuyruk işçisi ve bellek tabanlı önbellek gibi sunucu düzeyinde bileşenler gerektiğinde ortaya çıkar. İçerik ağırlıklı orta trafikli projeler için paylaşımlı barındırma yeterlidir.

Sunucuda paket yöneticisi çalıştıramıyorum

Gerekmez. Bağımlılıkları yerel makinenizde üretim ayarlarıyla kurup hazır hâliyle yükleyin. Bu yöntem hem daha küçük bir kurulum üretir hem sunucuda komut satırı ihtiyacını ortadan kaldırır.

Uygulamam paylaşımlı hostingde yavaş çalışıyor

Önce üretim modunda olduğunu doğrulayın — hata ayıklama modu açık bırakılmış bir framework belirgin biçimde yavaştır. Ardından framework önbelleklerini üretin ve bayt kodu önbelleğinin etkin olduğunu kontrol edin.

Yapılandırma dosyam güvende mi?

Test edin: tarayıcıdan o dosyanın adresini açmayı deneyin. İçerik görüyorsanız veritabanı parolanız internete açık demektir ve acil müdahale gerekir. Dizin yapısını düzeltin veya erişimi yönlendirme kuralıyla engelleyin.