Teknoloji Pazarlama, Bloglarınızdan ve Gadget'larınızdan Para Kazanın

WordPress'i Github Eylemleriyle Dağıtın

WordPress'i Github Eylemleriyle Dağıtın

Bir süre önce size WordPress sitenizi Deploybot ile nasıl dağıtacağınızı göstermiştim. Bu hizmeti yıllardır kullanıyorum, ancak başladığımda fiyat aralığımın dışındaydı, bu yüzden hiçbir şey kullanmadım ve sitelerimi dağıtırken birçok hata yaptım, bu da bana birçok saat kaybına ve biraz gözyaşına mal oldu.

Bugün size sitenizi hiçbir ücret ödemeden otomatik olarak dağıtmak için Github Eylemlerini nasıl kullanacağınızı anlatacağım. Kurulum Deploybot'tan daha karmaşıktır ancak çoğu proje için ücretsiz olacaktır.

Bu yazının bir sürü çalışma kısmı var, bu yüzden biraz zaman ayırın, özellikle de daha önce Git veya SSH anahtarlarıyla çalışmadıysanız. Şunları ele alacağız:

  • Barındırma Hesabı Oluşturma
  • Kodunuzu Git'e aktarma
  • Github'un kullanması için özel dağıtım SSH anahtarları oluşturma
  • Github Eylemleri YAML dosyasını yapılandırma
  • Özel bilgileri güvende tutmak için Github deposu sırlarını kullanma
  • ssh aracılığıyla rsync

Github Eylemleri Nelerdir??

Github Eylemleri Github'un, kodunuzun durumuna göre görevleri otomatik olarak gerçekleştirmenize olanak tanıyan bir özelliğidir. Bugün dağıtıma bakacağız ancak birim testlerinizi çalıştırmak veya birisi projenizde yeni bir PR yaptığında Slack sohbetine bildirimde bulunmak için de bir eylem gerçekleştirebilirsiniz.

İlk kurulumunuz biraz zaman ve çaba gerektirse de, aynı işi defalarca tekrarlamaktan endişe etmek yerine koda geri dönmenize izin vererek yatırımınızın karşılığını verirler.

Sitenizin Kurulumu

İhtiyacınız olan ilk şey Bana Hosting'te bir barındırma hesabı oluşturmaktır, o yüzden gidip mevcut planlara göz atın. Birkaç siteye ev sahipliği yapıyorsanız Maker WordPress planı iyi bir plandır.

Sitenizi kurduktan sonra yedeklemelere gidin ve başka bir şey yapmadan önce sitenin bir yedeğini oluşturun. Her ihtimale karşı, bilgisayarınızda bir kopyanın olması için bu yedeği de indirdiğinizden emin olun.

Yedeği açın ve ardından git depomuz olarak kullanmak üzere klasörü kopyalayın. Bugün ihtiyacımız olmayacağı için wp-config.php dosyasını kaldırabilirsiniz.

Artık depo kopyamızı indirdiğimize göre onu Github'a ekleyelim. Başlamak için Github'da yeni bir depo oluşturmamız gerekecek. Başlığınızı ve istediğiniz açıklamayı ekleyin, genellikle yapma Depoyu bir README ile başlatın çünkü bir müşteri projesi için projeye özel notları ve belgeleri kendim sağlayacağım.

Okumak:  Dimensity 1080: Türkiye'de En İyi Performansı Sunan Yeni Nesil Yonga

Ardından, Terminal'i açın ve WordPress'in indirilen kopyasını açın, böylece depoyu . Yapmak istediğimiz ilk şey .gitignore dosyamızı eklemektir, böylece Bana Hosting'in sitenizi çalıştırmak için ihtiyaç duyduğu dosyaların üzerine yazabilecek herhangi bir dosya eklememiş oluruz. Aşağıda verilen .gitignore dosyasını kullanabilirsiniz.

İlk sekiz satır Bana Hosting'e özeldir; bu nedenle kendi tercih ettiğiniz yoksayma yapılandırmanız varsa bu satırları kopyaladığınızdan emin olun.

Git'e aşina değilseniz Git'e Giriş hakkındaki gönderime göz atın.

.htaccess

wp-config.php

wp-içerik/yüklemeler/*

wp-içerik/önbellek/*

wp-içerik/yükseltme/*

wp-content/gelişmiş-cache.php

wp-content/object-cache.php

wp-content/mu-eklentileri/*

config/app_config.yml

yapılandırma/veritabanı.yml

config/*.sphinx.conf

config/s3_credentials.yml

*~

*.önbellek

*.kayıt

*.pid

tmp/**/*

.DS_Store

db/cstore/**

db/sfenks/**

belge/api

doküman/uygulama

belge/eklentiler

doc/*.dot

kapsam/*

db/*.sqlite3

*.tmproj

*.sw?

*.esproj

_notlar*

dwsync.xml

podcast.xml

*.kpf

*yüklemeler/*

*.swp

*.fikir

*.sublime-proje

*.sublime-çalışma alanı

*/node_modules/*

Etiketler

*.bak

önbellek/*

yönetim/*

Artık görmezden gelme dosyanız hazır olduğuna göre, WordPress dosyalarını deponuza eklemek için ve kullanın. Daha sonra bu dosyaları Github deponuza aktarın.

Github için SSH Dağıtım Anahtarı Oluşturma

Sitemizi Github Eylemleri aracılığıyla dağıtmak için eylemin kullanabileceği bir SSH anahtarına ihtiyacımız olacak. Yapmak Olumsuz normal SSH anahtarınızı kullanın.

Gerekli SSH anahtarlarını oluşturmak için e-postanızı kullanarak aşağıdaki komutu kullanın. Parola istendiğinde enter tuşuna basın ve boş bırakın. Sizden bir konum istendiğinde bunları geçici olarak saklamak için bir konum seçin. Github'un SSH anahtarlarıyla ilgili belgelerini ekstra ayrıntılarla burada bulabilirsiniz.

ssh-keygen -t rsa -b 4096 -C “e-postanı[email protected]

Şimdi genel anahtarı (.pub ile biten) açın ve istediğiniz metin düzenleyicide açın. Bana Hosting hesabınızda sağ üst köşedeki hesap adınıza tıklayın ve SSH Anahtarlarını seçin.

Ardından Anahtar Ekle'yi seçin ve anahtarın tamamını ana metin alanına kopyalayın/yapıştırın. Anahtarınızı doğru şekilde etiketlediğinizden emin olun, böylece anahtarın ne için kullanıldığını anlayabilirsiniz.

Son olarak anahtarı hesabınıza kaydetmek için Ekle'yi tıklayın.

Github Eyleminizi Ekleme ve Yapılandırma

Eylemimizi oluşturmaya başlamadan önce hesabımızda saklanan bazı gizli bilgilere ihtiyacımız olacak. Az önce oluşturduğumuz anahtar çifti için özel anahtarımız, sunucumuzun konumu ve bilinen_hosts dosyasının girişi gibi bilgiler.

Bunu, deponuzun sağ üst köşesindeki Ayarlar'ı seçerek başlatın. Ardından sol sütundan Sırlar'ı seçin. 3 farklı değer ekleyeceğiz.

  1. DEPLOY_SSH_KEY: Bu oluşturduğumuz özel anahtardır (sonunda .pub yoktur)
  2. NEXCESS_LOCATION: SSH'nin sunucumuzda erişeceği konum artı html dizininizin dosya yolu. Burada bir hata yaparsanız siteniz silinebilir ancak bu nedenle yedek aldık.
  3. NEXCESS_HOST: Sunucumuzdan ihtiyacımız olan izin verilen ana bilgisayar dosyası
Okumak:  WordPress'i 2FA ile kaba kuvvet saldırılarına karşı koruyun

Zaten 1 tane var, bu yüzden anahtar dosyanızı açın ve tüm içeriğini DEPLOY_SSH_KEY adlı bir gizli diziye kopyalayın.

Daha sonra sunucunuzun konumunu siteniz için Bana Hosting kontrol panelinizden Erişim menüsü altından alabilirsiniz.

Son olarak, NEXCESS_HOST içeriğini almanın en kolay yolu bilgisayarınızdan sunucunuza ssh eklemektir. Bu, bilinen yeni bir sunucuyu kabul etmenizi isteyecektir. Yeni sunucuyu kabul edin ve ardından ~/.ssh/known_hosts adresine gidebilir ve deponuza eklemeniz gereken sır için dosyadaki son satırı alabilirsiniz.

Bu şeyleri neden gizli tutuyoruz? Bu bilgi parçalarının her birinin bir miktar güvenlik riski vardır, dolayısıyla bunları deponuzda istemezsiniz. Bunları Github'da gizli bir değişkene koymak, bilgilerin kazara açığa çıkmamasını sağlar.

Github'daki depomuza geri dönmeye ve eylemimizi başlatmaya hazırız. Deponuzun üst kısmındaki Eylemler menüsüne giderek başlayın ve üzerine tıklayın. Önceden oluşturulmuş çok sayıda eylem olsa da, kendi eylemimizi oluşturarak başlayacağız, bunu Eylemler ekranından seçin.

Bunu yapmak size YAML'de yazılmış temel bir iş akışı dosyası verecektir. Varsayılan olarak, yalnızca ana dalınızda çalışır, ancak 9 ve 11. satırlardaki argümanlarda hangi dalın olduğunu değiştirerek, onun farklı bir dal için çalışmasını sağlayabilirsiniz. Bir hazırlama şubesinden bir hazırlama sitesine ve ana siteden canlı siteye dağıtım yapmak istiyorsanız bunu yapabilirsiniz.

Aşağıdaki satırdan başlayarak varsayılan iş akışı dosyanızın geri kalanını silin.

# Runner'ın kabuğunu kullanarak tek bir komutu çalıştırır

– name: Tek satırlık bir komut dosyası çalıştırın

koş: echo Merhaba dünya

Şimdi SSH temsilcimizi almamız gerekiyor. İş akışı ekranının sağ tarafında webfactory/ssh-agent'ı arayın.

Buna tıklayın ve size dosyanızın altına kopyalayıp yapıştırmanız için bazı komutlar sağlayacaktır, ancak biz kendi özel komut dosyamızı kullanacağız. Aşağıdaki kodu kopyalayın ve eylemler/checkout@v2line'ın altındaki iş akışı dosyanıza yapıştırın.

# SSH'yi ayarlama

– ad: SSH aracısını kurun

kullanım alanları: webfactory/[email protected]

ile:

ssh-özel anahtar: $ secrets.DEPLOY_SSH_KEY

Okumak:  Bir blog yazısında nelerden kaçınmalıyım?

– ad: Bilinen_ana bilgisayarların kurulumu

çalıştır: echo '$ secrets.NEXCESS_HOST ' >> ~/.ssh/known_hosts

– ad: Proje dosyalarını senkronize et

çalıştır: rsync -uvzr –backup –backup-dir=”~/deploy-backup/” –exclude 'wp-config.php' –exclude '.gitignore' –exclude '.git/*' — 'wp-content/uploads/*' hariç — '.htaccess' hariç — 'wp-content/cache/*' hariç — 'wp-content/advanced-cache.php' hariç — 'wp-content hariç' hariç /object-cache.php' –exclude 'wp-content/mu-plugins/*' $GITHUB_WORKSPACE/ $ secrets.NEXCESS_LOCATION

Bu dosyada daha önce oluşturduğumuz sırları görebilirsiniz. Ssh-agent'ı çekerek başlar ve arka planda hazırlandığı sunucuya özel DEPLOY_SSH_KEY'imizi ekler. Daha sonra sunucumuzu bilinen bir ana bilgisayar olarak ekler.

Uzun bir rsync komutuyla proje dosyalarını canlı sunucuya senkronize ederek tamamlanır. Kısacası, uzak sunucuyu konuşlandırma yedekleme adı verilen bir dizine yedekler ve ardından Github projesindeki tüm yeni dosyaları canlı sunucuya taşır. Orijinal .gitignore dosyamızda göz ardı ettiğimiz tüm konumları hariç tuttuk, böylece rsync bunlara kazara dokunmaz.

Oradaki her rsync komutunu okumak istiyorsanız genellikle buna başvururum. Rsync ile ilgili Ubuntu belgeleri

Artık tek yapmanız gereken deponuzda bazı değişiklikler yapmak ve ardından bunları deponuza eklemek ve taahhüt etmek için git'i kullanmak. Bu değişiklikleri Github'a aktardığınızda, işlem otomatik olarak dosyalarınızı yedekleyecek ve ardından değişikliklerinizi sitenize aktaracaktır.

Otomatik dağıtımlarda yeniyseniz, bu çok fazla iş gibi görünebilir. Sitemi dağıtmak için Github Actions'ı ilk kez kullandığımda bile komut dosyası üzerinde birkaç gün çalıştım. Düzenli olarak dağıtılan bir projeyle aynı komut dosyasını haftalarca kullanana kadar bu, zaman kazandırıyormuş gibi gelmiyor.

Dağıtımınızı otomatikleştirmek ve bunu doğru yapmak için zaman ayırmak, hiçbir zaman yanlışlıkla yanlış dosyaların üzerine yazmayacağınız, yanlış dosyaları yanlış dizine koymayacağınız veya 12 yıl boyunca dosyaları taşırken yaptığım birçok hatadan herhangi birini yapmayacağınız anlamına gelir Siteler inşa ediyorum.

İlk kez dağıtımı yapılandırmak için harcadığınız bir veya iki gün, bu sıkıntıdan kurtulmaya değer.