Şimdi yükleniyor

cPanel’de Git ile Web Sitesi Yönetimi: Gelişmiş Rehber

cPanel'de Git ile Web Sitesi Yönetimi: Gelişmiş Rehber

Modern web geliştirme süreçlerinde sürüm kontrol sistemleri, projelerin düzenli, takip edilebilir ve hatasız bir şekilde yönetilmesinin temelini oluşturur. Geliştiricilerin vazgeçilmezi haline gelen Git, bu sistemlerin başında gelir. Ancak birçok geliştirici, özellikle paylaşımlı hosting ortamlarında veya cPanel gibi kontrol panellerinde Git’in tam potansiyelini nasıl kullanacağını bilmeyebilir. Bu makale, cPanel ortamında Git ile web sitesi yönetimi konusunda size kapsamlı, adım adım bir rehber sunacak, böylece projelerinizi daha verimli ve güvenli bir şekilde dağıtabileceksiniz.

Git Nedir ve Neden cPanel’de Kullanmalıyız?

Git, Linus Torvalds tarafından geliştirilen, dağıtık bir sürüm kontrol sistemidir. Yazılım geliştirme sürecinde yapılan her değişikliği kaydederek, projenin herhangi bir anına geri dönebilme, farklı özellikler üzerinde eş zamanlı çalışabilme (dallanma) ve ekip üyeleri arasında kolayca iş birliği yapabilme imkanı sunar. cPanel gibi bir hosting kontrol panelinde Git kullanmanın faydaları ise şunlardır:

  • Kolay Dağıtım (Deployment): Geliştirme ortamınızda yaptığınız değişiklikleri tek bir komutla veya otomasyonla canlı sunucuya aktarabilirsiniz.
  • Hata Geri Alma: Yanlış bir dağıtım veya hatalı bir kod sonrası, projenizi sorunsuz çalışan önceki bir sürüme anında geri döndürebilirsiniz.
  • Sürüm Takibi: Her değişikliğin kim tarafından, ne zaman ve ne amaçla yapıldığını kolayca takip edebilirsiniz.
  • İş Birliği: Ekip üyeleri, aynı proje üzerinde çakışma yaşamadan paralel olarak çalışabilirler.
  • Güvenlik: Hassas dosyaların doğrudan FTP ile aktarılması yerine, güvenli SSH protokolü üzerinden Git ile aktarımı sağlanır.

cPanel’de Git Deposu Oluşturma ve Yönetme (Adım Adım Rehber)

cPanel, Git Sürüm Kontrolü özelliğini entegre ederek bu süreci oldukça basitleştirir. İşte adım adım nasıl yapılacağı:

Adım 1: cPanel Git Sürüm Kontrolü Arayüzüne Erişim

cPanel hesabınıza giriş yapın. Arama çubuğuna ‘Git’ yazarak veya ‘Dosyalar’ bölümünün altında ‘Git Sürüm Kontrolü’ (Git Version Control) seçeneğini bularak ilgili arayüze ulaşın.

Adım 2: Yeni Bir Git Deposu Oluşturma

‘Oluştur’ (Create) düğmesine tıklayın. Karşınıza çıkan ekranda aşağıdaki bilgileri doldurmanız gerekecektir:

  • Depo Yolu (Repository Path): Bu, projenizin sunucu üzerindeki kök dizini olacaktır. Örneğin, /home/kullaniciadi/projeadi. Bu dizin otomatik olarak oluşturulur.
  • Depo URL’si (Repository URL): Eğer projenizi GitHub, GitLab veya Bitbucket gibi uzak bir depodan klonlayacaksanız, bu alana uzak deponuzun SSH URL’sini yapıştırın (örn. [email protected]:kullanici/repo.git). Eğer cPanel üzerinde yerel bir depo oluşturup daha sonra dışarıya itecekseniz bu alanı boş bırakabilirsiniz.
  • Klonlama Yolu (Clone Path): Projenizin web üzerinden erişilebilir olacağı dizindir. Genellikle public_html/projeadi veya doğrudan public_html olarak ayarlanır. Bu, Git deposunun içeriğinin web sitenizde yayınlanacağı yerdir.
  • SSH Anahtarı Kullanımı: Eğer uzak bir depo kullanıyorsanız ve bu depo özel (private) ise, cPanel’de SSH anahtarlarınızı yapılandırmanız gerekir. cPanel’deki ‘SSH Erişimi’ (SSH Access) bölümünden bir anahtar oluşturabilir veya mevcut bir anahtarı yükleyebilirsiniz. Oluşturduğunuz genel (public) anahtarı uzak deponuzun (GitHub, GitLab vb.) ayarlarındaki ‘SSH ve GPG anahtarları’ bölümüne eklemeyi unutmayın.

Bilgileri girdikten sonra ‘Oluştur’ düğmesine tıklayarak depoyu oluşturun. Eğer uzak bir depo URL’si verdiyseniz, cPanel otomatik olarak depoyu klonlayacaktır.

Adım 3: Uzak Depodan Klonlama ve Güncelleme

Eğer depoyu oluştururken bir uzak URL belirtmediyseniz veya projenizi manuel olarak klonlamak isterseniz, cPanel arayüzünde oluşturduğunuz deponun yanında bulunan ‘Yönet’ (Manage) düğmesine tıklayın. Burada ‘Klonla/Çek’ (Pull or Fetch) seçeneğini göreceksiniz. Uzak deponuzdaki en son değişiklikleri sunucuya çekmek için bu düğmeyi kullanın. SSH anahtarlarınızın doğru yapılandırıldığından emin olun.

Adım 4: Yerel Değişiklikleri cPanel’e Dağıtma (Deploy)

Geliştirme ortamınızda projenizde değişiklikler yaptınız, commit’lediniz ve uzak deponuza (örn. GitHub) git push ile gönderdiniz. Şimdi bu değişiklikleri cPanel’deki canlı sitenize aktarmanız gerekiyor.

  • Manuel Dağıtım: cPanel Git arayüzünde deponuzu yönetirken, ‘Çek’ (Pull) düğmesine tıklayarak uzak deponuzdaki en son değişiklikleri sunucuya çekebilirsiniz. Bu, projenizin dağıtım yolundaki dosyaları güncelleyecektir.
  • Otomatik Dağıtım (Webhooks): En verimli yöntem, otomatik dağıtım kullanmaktır. cPanel, her depo için bir ‘Webhook URL’si’ sağlar. Bu URL’yi uzak deponuzun (GitHub, GitLab vb.) ayarlarındaki ‘Webhooks’ bölümüne ekleyin. Her git push işleminden sonra uzak depo, bu URL’ye bir bildirim gönderir ve cPanel otomatik olarak git pull işlemini tetikler, böylece değişiklikler anında canlıya alınır.

Teknik Arka Plan ve İleri Seviye Kullanım

cPanel’in Git entegrasyonu, temel işlemleri kolaylaştırsa da, bazı ileri seviye teknikler verimliliğinizi artırabilir:

  • Git Hook’ları (post-receive): cPanel’in ‘Yönet’ ekranında ‘Dağıtım Yolu’ (Deployment Path) ve ‘Dağıtım Scripti’ (Deployment Script) alanları bulunur. Buraya bir .git/hooks/post-receive scripti tanımlayarak, her git pull veya webhook tetiklenmesi sonrası otomatik olarak belirli komutları çalıştırabilirsiniz. Örneğin, composer install, npm install, önbellek temizleme veya veritabanı göçü gibi işlemleri bu script içinde otomatikleştirebilirsiniz.
  • Birden Fazla Dal (Branch) ile Çalışma: Geliştirme (develop), test (staging) ve canlı (main/master) gibi farklı dallar için ayrı Git depoları oluşturarak veya tek bir depo içinde dallar arası geçiş yaparak daha kontrollü bir geliştirme süreci yürütebilirsiniz. Her dal için farklı bir dağıtım yolu tanımlayabilirsiniz.
  • .gitignore Yönetimi: vendor, node_modules, .env gibi büyük boyutlu veya hassas dosyaların Git deposuna dahil edilmemesi için .gitignore dosyasını doğru şekilde yapılandırmak performansı artırır ve güvenliği sağlar.

Olası Hata Çözümleri (Troubleshooting)

Git ile çalışırken karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:

  • SSH Anahtarı Sorunları (Permission denied): Uzak depodan klonlama veya çekme sırasında ‘Permission denied (publickey)’ hatası alıyorsanız, SSH anahtarınızın doğru oluşturulduğundan, genel anahtarınızın uzak deponuzun ayarlarında eklendiğinden ve cPanel’de özel anahtarınızın yüklü olduğundan emin olun. Anahtarın parolası varsa, doğru girdiğinizden emin olun.
  • Dosya İzinleri (File Permissions): Dağıtım sonrası sitenizde 500 hatası veya dosyalara erişim sorunları yaşıyorsanız, dağıtılan dosyaların ve dizinlerin izinlerini kontrol edin. Genellikle dizinler için 755, dosyalar için 644 izinleri önerilir. cPanel Dosya Yöneticisi üzerinden veya SSH ile chmod komutuyla düzeltebilirsiniz.
  • Çakışmalar (Merge Conflicts): Birden fazla geliştirici aynı dosyanın aynı bölümünde değişiklik yaptığında çakışmalar oluşabilir. Git bu durumu size bildirir. Bu durumda, yerel geliştirme ortamınızda çakışmaları manuel olarak çözüp, değişiklikleri tekrar uzak depoya itmeli ve ardından cPanel’de çekme işlemi yapmalısınız.
  • Webhooks Tetiklenmeme Sorunları: Webhook URL’sini uzak deponuzun ayarlarına doğru bir şekilde eklediğinizden emin olun. Uzak depo tarafında (GitHub gibi) webhook’un tetiklenip tetiklenmediğini ve bir hata olup olmadığını kontrol etmek için teslim günlüklerini (delivery logs) inceleyin. cPanel’in güvenlik duvarı (CSF/LFD) tarafından engellenip engellenmediğini de kontrol etmek gerekebilir.
  • cPanel’in Git Versiyonu ile İlgili Kısıtlamalar: Bazı hosting sağlayıcıları cPanel’de eski Git versiyonlarını kullanabilir. Bu durum, yeni Git özelliklerini kullanmanızı engelleyebilir. Hosting sağlayıcınızla iletişime geçerek Git versiyonunu güncellemelerini talep edebilirsiniz.

Güvenlik İpuçları ve En İyi Uygulamalar

  • SSH Anahtarlarının Güvenliği: SSH özel anahtarlarınızı asla kimseyle paylaşmayın. Güçlü bir parola ile koruyun.
  • Depo Erişimi: Uzak deponuzun (GitHub, GitLab) erişimini yalnızca yetkili kişilere verin. Projenizi özel (private) tutmak, açık kaynak değilse her zaman daha güvenlidir.
  • Hassas Bilgilerin Yönetimi: Veritabanı kimlik bilgileri, API anahtarları gibi hassas bilgileri asla Git deposuna dahil etmeyin. Bunları .env dosyaları kullanarak yönetin ve .gitignore dosyasına ekleyerek Git tarafından izlenmesini engelleyin.
  • Webhook URL’lerinin Güvenliği: Webhook URL’leri genellikle gizli tutulmalıdır. Bazı servisler, webhook’lar için gizli anahtar (secret token) tanımlamanıza izin verir. Bu özelliği kullanarak webhook çağrılarının güvenliğini artırın.

Performans Optimizasyonları

  • Küçük ve Sık Commit’ler: Daha küçük, anlamlı commit’ler yapmak, hata ayıklamayı kolaylaştırır ve gerektiğinde geri dönüşleri hızlandırır.
  • Gereksiz Dosyaların Depoya Eklenmemesi: .gitignore dosyasını etkin bir şekilde kullanarak derleme çıktıları, geçici dosyalar, bağımlılık klasörleri (node_modules, vendor) gibi gereksiz dosyaların Git deposuna eklenmesini engelleyin. Bu, depo boyutunu küçültür ve klonlama/çekme işlemlerini hızlandırır.
  • Otomatik Dağıtım ile Hızlı Yayınlama: Webhook’lar aracılığıyla otomatik dağıtım kurmak, manuel işlemlere kıyasla hem zaman kazandırır hem de insan hatası riskini azaltarak performansı artırır.

cPanel’de Git sürüm kontrolünü etkin bir şekilde kullanmak, web geliştirme iş akışınızı kökten değiştirebilir. Projelerinizi daha düzenli, güvenli ve hatasız bir şekilde yönetmenizi sağlarken, aynı zamanda hızlı ve güvenilir dağıtım süreçleriyle sitenizin sürekli güncel kalmasını temin eder. Başlangıçta biraz öğrenme eğrisi olsa da, sunduğu avantajlar bu çabaya fazlasıyla değecektir. Modern web uygulamalarının karmaşıklığı göz önüne alındığında, Git gibi bir sürüm kontrol sisteminin cPanel entegrasyonu, hem bireysel geliştiriciler hem de ekipler için vazgeçilmez bir araç haline gelmiştir. Bu rehberdeki adımları ve ipuçlarını uygulayarak, cPanel hosting ortamınızda Git’in gücünden tam anlamıyla faydalanabilir ve geliştirme süreçlerinizi bir üst seviyeye taşıyabilirsiniz.

You May Have Missed