LIONFIN
Plesk Hosting

Plesk Git Deploy: Depodan Otomatik Yayınlama

5 dk okuma Güncelleme: 7 görüntülenme
Plesk Git Deploy: Depodan Otomatik Yayınlama

Kodunuz zaten GitHub ya da GitLab’de duruyorsa canlıya almak için dosyaları FTP ile tek tek yüklemek hem yavaş hem hataya açıktır. Plesk Git deploy özelliği depoyu doğrudan alan adınıza bağlar: her push sonrası dosyalar belge köküne çekilir, isterseniz ardından composer install ya da npm run build gibi komutlar çalışır.

Bu rehberde LIONFIN Plesk hosting hesabınızda uzak depoyu SSH anahtarıyla bağlamayı, otomatik ve elle dağıtım modlarını, deploy sonrası eylemleri, sunucunun kendisini depo olarak kullanmayı ve karşılaşabileceğiniz hataları anlatıyoruz.

Plesk Git deploy nasıl çalışır?

Git uzantısı alan adı kartında Git bağlantısı olarak görünür ve iki çalışma modu sunar:

ModDepo neredeNasıl tetiklenirUygun senaryo
Remote Git hostingGitHub, GitLab, Bitbucket ya da kendi sunucunuzWebhook ile otomatik ya da Pull Updates düğmesiyleEkip çalışması, CI/CD ile birlikte
Local repositoryPlesk sunucusunda oluşturulan çıplak depoBilgisayarınızdan git pushTek geliştirici, dış servis istemeyenler

Her iki modda da Plesk depoyu abonelik içinde bir klasöre klonlar, seçtiğiniz dalı (branch) deployment path olarak belirlediğiniz klasöre kopyalar. Dağıtım klasörü çoğunlukla httpdocs olur; Laravel gibi public alt klasörü kullanan projelerde belge kökünü Hosting Settings altından httpdocs/public yapmanız gerekir. Git uzantısı Plesk Obsidian’ın standart bileşenidir; panelinizde görünmüyorsa destek talebiyle etkinleştirilebilir.

Uzak depoyu bağlama (GitHub / GitLab)

Özel (private) bir depo için sunucunun depoya okuma yetkisi olmalıdır; bunu SSH deploy key ile sağlarsınız:

  1. Alan adı kartında Git bağlantısına, ardından Add Repository düğmesine tıklayın.
  2. Remote Git hosting like GitHub or Bitbucket seçeneğini işaretleyin.
  3. Remote Git repository alanına SSH adresini yapıştırın: [email protected]:kullanici/proje.git.
  4. Plesk’in gösterdiği SSH public key metnini kopyalayın; GitHub’da Settings → Deploy keys → Add deploy key, GitLab’de Settings → Repository → Deploy keys altına yapıştırın (yazma izni gerekmez).
  5. Deployment mode ve Deployment path değerlerini seçip OK deyin; Plesk depoyu klonlar ve ilk dağıtımı yapar.

Herkese açık depolarda https adresi yeterlidir, anahtar gerekmez. Bağlantı sonrası Repository settings ekranında Webhook URL görünür; bunu depo ayarlarındaki Webhooks bölümüne eklediğinizde her push Plesk’e bildirilir ve dağıtım otomatik başlar.

İpucu: Aynı depoyu iki alan adına bağlayıp birinde main, diğerinde develop dalını seçerek canlı ve staging ortamını ayırabilirsiniz.

Dağıtım modları ve dal seçimi

Plesk Git deploy davranışını Repository settings ekranındaki Deployment mode belirler; üç seçenek vardır:

  • Automatic deployment: Webhook her tetiklendiğinde seçili dal çekilir ve dağıtım klasörüne kopyalanır; küçük ekipler ve sürekli yayınlanan projeler için idealdir.
  • Manual deployment: Depo güncellenir ancak dosyalar siz Deploy düğmesine basana kadar yayına alınmaz; canlıya alma anını kontrol etmek istediğinizde kullanın.
  • No deployment: Plesk yalnızca depoyu senkronize eder; başka bir araç dağıtımı yapar.

Dağıtılacak dalı aynı ekranda Deploy branch alanından değiştirebilirsiniz. Plesk dağıtım sırasında dağıtım klasöründeki depoya ait olmayan dosyalara dokunmaz; kullanıcı yüklemeleri (uploads) ve .env gibi dosyalar yerinde kalır. Depoda bulunan ama artık silinen dosyalar ise dağıtım klasöründen de kaldırılır, bu yüzden yapılandırma dosyalarını depoya değil sunucuya koyun. Değişikliği canlıya almadan önce Plesk yedekleme ile anlık kopya almak geri dönüş yolunu açık tutar.

Deploy sonrası eylemler: composer, npm, cache

Dosyaları kopyalamak çoğu projede yeterli değildir; bağımlılıkların kurulması ve önbelleğin yenilenmesi gerekir. Repository settings → Enable additional deploy actions kutusunu işaretleyip komutları satır satır yazın. Laravel projesi için örnek:

cd httpdocs
/opt/plesk/php/8.3/bin/php /usr/lib64/plesk-9.0/composer.phar install --no-dev --optimize-autoloader
/opt/plesk/php/8.3/bin/php artisan migrate --force
/opt/plesk/php/8.3/bin/php artisan config:cache
/opt/plesk/php/8.3/bin/php artisan view:cache

Komutlar abonelik kullanıcısıyla, abonelik kökünde çalışır; bu yüzden PHP ve Composer için tam yol yazmak gerekir, yollar sunucuya göre değişebilir. Kullanacağınız PHP sürümü sitenizin Plesk PHP sürümü ayarı ile aynı olmalıdır. npm ve node paylaşımlı sunucuda çoğunlukla bulunmaz; ön yüz derlemesini bilgisayarınızda ya da CI’da yapıp derlenmiş dosyaları depoya ekleyin. Uzun süren derlemeler için ayrı bir Plesk zamanlanmış görev tanımlamak, deploy adımını hafif tutar.

Dikkat: Deploy eylemlerinde hata olursa Plesk dağıtımı tamamlanmış sayar; komut çıktısını her dağıtımdan sonra Git ekranındaki günlükten kontrol edin.

Yerel depo modu: doğrudan sunucuya push

Dış servis kullanmak istemiyorsanız Plesk’in kendisi depo sunucusu olur:

  1. Add Repository ekranında Local repository on the server seçeneğini işaretleyin, depo adı ve dağıtım klasörünü belirleyip OK deyin.
  2. Plesk, ssh://kullanici@sunucu/~/git/proje.git biçiminde bir adres gösterir; bunun için abonelikte SSH erişimi açık olmalıdır (Web Hosting Access → SSH access).
  3. Bilgisayarınızda depoya uzak ekleyin ve gönderin:
git remote add plesk ssh://kullanici@sunucu/~/git/proje.git
git push plesk main

Her push sonrası Plesk seçili dalı dağıtım klasörüne kopyalar ve deploy eylemlerini çalıştırır. Parola yerine SSH anahtarı kullanmak için açık anahtarınızı abonelik kökündeki .ssh/authorized_keys dosyasına ekleyin; Plesk dosya yöneticisi gizli dosyaları gösterir. Bu mod tek geliştirici için yeterlidir; ekip çalışmasında kod inceleme ve CI için uzak depo modu daha uygundur.

Sık karşılaşılan hatalar

“Permission denied (publickey)”

Deploy key depoya eklenmemiş ya da yanlış depoya eklenmiştir; Plesk’in gösterdiği anahtarı yeniden kopyalayıp depo ayarlarına ekleyin ve Pull Updates deyin.

Webhook tetikleniyor ama dosyalar güncellenmiyor

Dağıtım modu Manual olabilir ya da seçili dal push ettiğiniz daldan farklıdır; Repository settings altındaki dal adını kontrol edin.

Deploy sonrası site boş sayfa gösteriyor

Belge kökü ile dağıtım klasörü uyuşmuyordur; public alt klasörü kullanan projelerde Hosting Settings → Document root değerini güncelleyin ve dosya izinlerini doğrulayın.

“composer: command not found”

Deploy eylemlerinde tam yol kullanın; yolu bulamıyorsanız which composer çıktısını SSH ile alın ya da destek ekibine sorun.

.env dosyası silindi

Dosya depoda izleniyordu ve depodan kaldırılınca sunucudan da silindi; .gitignore içine ekleyin ve yapılandırmayı sunucuda elle oluşturun.

Sık Sorulan Sorular

Plesk Git deploy için SSH erişimi şart mı?

Uzak depo modunda gerekmez; Plesk depoyu kendisi çeker ve deploy key ile kimlik doğrular. Yerel depo moduna push etmek için ise SSH erişimi gerekir. Paylaşımlı hostingde SSH erişimi paket ya da talebe göre açılır; müşteri panelinden kontrol edebilirsiniz.

Bitbucket ya da kendi Gitea sunucumu bağlayabilir miyim?

Evet. Plesk herhangi bir Git sunucusuyla çalışır; SSH ya da HTTPS adresini girmeniz yeterlidir. Özel depolarda sunucunun açık anahtarını ilgili servisin deploy key bölümüne ekler, webhook adresini de aynı şekilde tanımlarsınız. Kendi Git sunucunuz dışarıdan erişilebilir olmalıdır.

Dağıtım sırasında site kesintiye uğrar mı?

Dosya kopyalama birkaç saniye sürer ve sunucu bu sırada isteklere yanıt vermeye devam eder; büyük projelerde kısa süreli tutarsızlık görülebilir. Bunu önlemek için dağıtımı gece saatlerine almak ya da manuel modda düşük trafik anında Deploy düğmesine basmak yeterlidir.

Depoda bulunmayan yükleme klasörleri dağıtımda silinir mi?

Hayır. Plesk yalnızca depodan gelen dosyaları günceller ve depodan silinmiş dosyaları kaldırır; depoyla ilgisi olmayan klasörlere dokunmaz. Yine de uploads gibi klasörleri .gitignore içinde tutmanız ve ilk dağıtımdan önce yedek almanız önerilir.

Bu makale yardımcı oldu mu?

Geri bildiriminiz için teşekkürler!

kişi faydalı buldu

Paylaş

X LinkedIn WhatsApp

Sorunuz mu var? Destek ekibimize yazın.