hosting

Composer ve Bağımlılık Yönetimi: Paylaşımlı Hostingde Kütüphane Kullanmak

Kilit dosyasının önemi, SSH'siz kurulum yöntemi, PHP sürüm uyumu, paket klasörü güvenliği, güncelleme disiplini ve dosya sayısı etkisi. Composer ve…

Composer ve Bağımlılık Yönetimi: Paylaşımlı Hostingde Kütüphane Kullanmak
İçindekiler
  1. Bağımlılık Yöneticisi Ne Yapar?
  2. Kilit Dosyasının Önemi
  3. Paylaşımlı Hostingdeki Zorluk
  4. Yükleme Akışı
  5. Güvenlik Boyutu
  6. Güncelleme Disiplini
  7. Az Paketle Çalışmak
  8. Kurulum Kontrol Listesi
  9. Sonuç
  10. Sıkça Sorulan Sorular (SSS)
  11. SSH erişimim yok, bağımlılık kullanabilir miyim?
  12. Kilit dosyasını yüklemeli miyim?
  13. Paketleri yükledim ama site beyaz ekran veriyor?
  14. Paket klasörü güvenli mi?

Composer ve Bağımlılık Yönetimi: Paylaşımlı Hostingde Kütüphane Kullanmak

Modern PHP projeleri artık tek dosyalık betiklerden ibaret değil. Kütüphaneler, paketler ve bunların kendi bağımlılıkları var — peki bu yapı paylaşımlı hostingde nasıl yönetilir?

Bu yazı, bağımlılık yönetiminin hosting tarafındaki pratik karşılığını ele alıyor.

Bağımlılık Yöneticisi Ne Yapar?

Elle kütüphane indirip klasöre atmanın sorunları:

  • Sürüm takibi yapılamaz. Hangi sürüm kullanılıyor?
  • Alt bağımlılıklar elle çözülür. Kütüphanenin kütüphanesi.
  • Güncelleme zahmetlidir. Her biri ayrı ayrı.
  • Çakışmalar görünmez. İki paket farklı sürüm isterse.
  • Otomatik yükleme elle yazılır. Her dosya ayrı dahil edilir.

Bağımlılık yöneticisi bunların hepsini tek bir tanım dosyası üzerinden çözer: hangi paketleri hangi sürüm aralığında istediğinizi yazarsınız, gerisini araç halleder.

Sonuçta iki dosya oluşur: istediğiniz sürüm aralıklarını tutan tanım dosyası ve gerçekte kurulan tam sürümleri kaydeden kilit dosyası.

Kilit Dosyasının Önemi

İki dosya arasındaki fark, üretim ortamında kararlılığın anahtarıdır:

Dosya İçeriği
Tanım dosyası İstenen sürüm aralıkları
Kilit dosyası Kurulan tam sürümler

Kural nettir: kilit dosyası mutlaka projeyle birlikte saklanmalı ve üretimde kurulum bu dosyaya göre yapılmalıdır.

Aksi hâlde her kurulumda farklı sürümler gelir ve "geliştirme ortamımda çalışıyordu" durumu ortaya çıkar. Kilit dosyası, tüm ortamlarda birebir aynı sürümlerin kurulmasını garanti eder.

Paylaşımlı Hostingdeki Zorluk

Bağımlılık yöneticisi komut satırında çalışır. Paylaşımlı hostingde bu her zaman mümkün olmayabilir:

  1. SSH erişimi olmayabilir. Komut çalıştıramazsınız.
  2. Bellek limiti düşük olabilir. Kurulum bellek ister.
  3. Süre limiti kurulumu kesebilir.
  4. Dış bağlantı kısıtlı olabilir. Paket deposuna erişim.

Çözüm, işi hostingde yapmamaktır: bağımlılıkları kendi bilgisayarınızda kurun ve oluşan klasörü hazır olarak yükleyin.

Bu yaklaşımın ek avantajı, üretim ortamında hiçbir kurulum işlemi çalışmaması — dolayısıyla kurulum sırasında bir hata oluşma ihtimalinin sıfır olmasıdır.

Yükleme Akışı

Yerelde kurup yükleme yöntemi için izlenecek sıra:

  • Yerelde üretim moduyla kurun. Geliştirme paketleri dahil edilmesin.
  • Otomatik yükleme dosyasını optimize edin. Performans farkı yaratır.
  • PHP sürümünüzü hostingle eşleştirin.
  • Oluşan klasörü olduğu gibi yükleyin.
  • Klasörü web kökünün dışında tutun. Mümkünse.

Üçüncü madde en sık yapılan hatanın kaynağıdır: yerelde daha yeni bir PHP sürümü kullanıyorsanız, kurulan paketler hostingdeki eski sürümle uyumsuz olabilir.

Bu durumda site beyaz ekran verir ve hata mesajı da genellikle net değildir. Kurulum sırasında hedef PHP sürümünü açıkça belirtmek bu sorunu önler.

Güvenlik Boyutu

Paket klasörü web kökü içindeyse dikkat gerekir:

  1. Paketlerin içinde örnek ve test dosyaları bulunur
  2. Bazıları doğrudan çalıştırılabilir
  3. Sürüm bilgileri dışarıya sızabilir
  4. Bilinen açıklar hedeflenebilir

En temiz çözüm, klasörü web kökünün dışına almaktır. Bu mümkün değilse dizine doğrudan erişimi yapılandırma dosyasıyla engelleyin — yalnızca uygulamanız içeriden erişebilsin.

Üçüncü madde önemli bir keşif riskidir: kullandığınız paketlerin sürümlerini dışarıdan okuyabilen biri, o sürümlerdeki bilinen açıkları doğrudan deneyebilir. Bu tür yapılandırma kontrollerini Linux hosting ortamında dosya izinleri ve dizin kuralları üzerinden yönetmek mümkündür.

Güncelleme Disiplini

Bağımlılıklar bir kez kurulup unutulacak şeyler değildir:

İş Sıklık
Güvenlik uyarısı kontrolü Aylık
Küçük sürüm güncellemeleri Üç ayda bir
Ana sürüm geçişleri Planlı, test ortamında
Kullanılmayan paket temizliği Yılda bir

Birinci satır en kritik olanıdır: kullandığınız bir kütüphanede güvenlik açığı bulunduğunda, bunu öğrenmenin tek yolu düzenli kontroldür.

Üçüncü satırda acele etmeyin — ana sürüm geçişleri geriye dönük uyumsuzluk içerir ve mutlaka test ortamında denenmelidir.

Az Paketle Çalışmak

Her ihtiyaç için paket eklemek cazip gelir ama maliyeti vardır:

  • Her paket bir bakım yüküdür. Güncellenmesi gerekir.
  • Her paket bir güvenlik yüzeyidir.
  • Alt bağımlılıklar hızla çoğalır. Beş paket elli klasör getirebilir.
  • Disk ve dosya sayısı tüketilir. Hosting limitlerinde önemli.

Dördüncü madde paylaşımlı hostingde somut bir sınırdır: paket klasörü on binlerce dosya içerebilir ve hesabınızın dosya sayısı kotasını hızla tüketir.

Basit bir işlev için büyük bir kütüphane eklemek yerine, birkaç satır kod yazmak çoğu zaman daha doğrudur. Bu kararı verirken sorulacak soru: bu paket ne kadar iş yapıyor ve alternatifi ne kadar kod?

Kurulum Kontrol Listesi

  1. Kilit dosyası projede saklanıyor mu?
  2. Üretimde kilit dosyasına göre kurulum yapılıyor mu?
  3. Geliştirme paketleri üretime gitmiyor mu?
  4. PHP sürümleri eşleşiyor mu?
  5. Paket klasörü doğrudan erişime kapalı mı?
  6. Otomatik yükleme optimize edilmiş mi?
  7. Güvenlik uyarıları düzenli kontrol ediliyor mu?

Üçüncü madde hem güvenlik hem boyut kazancı sağlar: test ve hata ayıklama paketlerinin üretim sunucusunda bulunmasına gerek yoktur ve bazıları bilgi sızdırabilir.

Sonuç

Paylaşımlı hostingde bağımlılık yönetiminin doğru yolu, kurulumu sunucuda yapmamaktır: paketleri kendi bilgisayarınızda üretim moduyla kurup hazır klasörü yükleyin. Bunu yaparken PHP sürümlerini eşleştirin — yereldeki daha yeni sürümle kurulan paketler hostingde beyaz ekran verir. Kilit dosyasını mutlaka projeyle birlikte saklayın; kurulum kilit dosyasına göre yapılmazsa her ortamda farklı sürümler gelir. Ve paket sayısını sınırlı tutun: paket klasörü on binlerce dosyayla hesabınızın kotasını tüketebilir.

Sıkça Sorulan Sorular (SSS)

SSH erişimim yok, bağımlılık kullanabilir miyim?

Kullanabilirsiniz. Paketleri kendi bilgisayarınızda kurun ve oluşan klasörü FTP ile olduğu gibi yükleyin. Bu yöntemin ek avantajı, üretim ortamında hiçbir kurulum işlemi çalışmamasıdır — kurulum sırasında hata oluşma ihtimali sıfırdır.

Kilit dosyasını yüklemeli miyim?

Evet, mutlaka. Kilit dosyası hangi paketin tam olarak hangi sürümde kurulduğunu kaydeder. Onsuz her kurulumda farklı sürümler gelebilir ve "geliştirme ortamımda çalışıyordu" durumu ortaya çıkar.

Paketleri yükledim ama site beyaz ekran veriyor?

En olası neden PHP sürüm uyumsuzluğudur. Yerelde daha yeni bir sürüm kullanıyorsanız, kurulan paketler hostingdeki eski sürümle çalışmaz. Kurulumu yaparken hedef PHP sürümünü açıkça belirtin.

Paket klasörü güvenli mi?

Web kökü içindeyse tam güvenli değildir — paketlerin içinde çalıştırılabilir örnek dosyalar bulunur ve sürüm bilgileri dışarıya sızabilir. En temizi klasörü web kökünün dışına almak, mümkün değilse dizine doğrudan erişimi yapılandırmayla engellemektir.