Wordpress Git İş Akışı Yardımı


17

Wordpress ile çalışmak için güçlü bir iş akışı fikri arıyorum.

  1. Git ortamımı dahili olarak kendi sunucumda kullanmak, depoları işlemek için Github kullanmak istemiyorum.
  2. Git şubesi oluşturulduktan sonra alt alan adlarının otomatik oluşturulması (development.domain.com, ryan.development.domain.com) - Muhtemelen bazı kabuk komut dosyası kancaları bunun için idealdir.
  3. Phing PHP / Shell komut dosyası Push iterek seri veritabanı değiştirme işlemek için db taşıma ( http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ gibi bir şey ) işleme

Operasyon muhtemelen böyle bir şeye giderdi:

  1. en son wordpress sürümünü alıp dallara ayırın, dalın adı bir alt alan adı girişi alır (branchdevelopment.domain.com)
  2. Eğer mevcutsa arzu tema temayı (bunun için kendi git repo yapmak istiyorum, tezi kullandığım gibi zaten oluşturulmuş olan sunucudan dahili olarak kapmak için boş bir tez git repo kurulum istiyorum)
  3. ödeme ve değişiklikler yapma, müşteri incelemeleri, canlı yayınlamaya itildikten sonra, veritabanı komut dosyası, serileştirilmiş URL değerlerini localhost'tan (veya alt alan adından) canlı URL'ye otomatik olarak değiştirerek başlar.

Mümkün mü? Capistrano'nun da bundan faydalanmakta iyi olduğunu duydum ama Capistrano'nun nasıl çalıştığından emin değilim.

Kendi sunucumda yaklaşık 200 site çalıştırıyorum ve bu siteleri güçlü bir git iş akışı ortamına uygulamaya başlamak istiyorum, böylece işimi çok daha iyi bir şekilde düzenleyebilirim. Şu an itibariyle, temel olarak sitenin bir resmini indirip yerel olarak çalışıyorum ve değişiklikleri sunucuya geri yüklüyorum. Bu gün ve çağda çok sıkıcı.

Bu tür iş akışıyla ilgili herhangi bir çözümü olan var mı / geçmişte bununla çalışmış mı? Eğer öyleyse, bazı kaynaklar / cevaplar çok takdir edilecektir.


3
Neden bitbucket'i ücretsiz olarak sınırsız depoları olduğu için kullanmıyorsunuz?
Brian Fegter

2
Eğer github repo ödeme yaparsanız arama yerine bir cli sürümü vardır, bunu kullanabilirsiniz, ancak içine çeşitli URL ve parametreleri almak için nasıl yorum yapamam
Tom J Nowell

Yanıtlar:


6

Genel Sorular cevaplandı

No.1. Git ortamımı dahili olarak kendi sunucumda kullanmak, depoları işlemek için Github kullanmak istemiyorum.

Yapacağım ilk şey besteci ve onun nasıl çalıştığını WordPress ile kontrol etmek , Andrey "@Rarst" Savchenko'nun bir projesi .

Nr.2. Git şube oluşturma üzerine alt alan adlarının otomatik oluşturulması ( development.example.com, ryan.development.example.com) - Muhtemelen bazı kabuk komut dosyası kancası bunun için idealdir.

Bu, bu site için kapsam dışı bir şey. StackOverflow konusunda yardım isteyin veya barındırıcınızdan isteyin. Bazı toplantı sahipleri bu girişleri kendiniz düzenlemenize izin vermez.

No.3. Phing PHP / Shell komut dosyası Push iterek seri veritabanı değiştirme işlemek için db taşıma ( http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ gibi bir şey ) işleme

Çok bölgeli / ağ kurulumu kurarım. Bu, tüm tabloları kolayca yönetmenize, kullanıcıları merkezi bir yerde tutmanıza vb.

WP Gear - Robert "@Wyck" Ellison'un bir projesi - alternatif yapım komut dosyalarının bir listesi var. Kendisi tarafından yazılan WordPhing dahil . @TomJNowells /Interconnect.it komut dosyası şu ana kadar listede yok.

Operasyon Soruları cevaplandı

Nr. 1. geçerli en son wordpress sürümünü alıp dal, şube adı bir alt alan adı girişi alır (branchdevelopment.domain.com)

Birinin bunu neden yapmak istediğinden emin değilim: Her dal için bir alt alan adı. Eşitlenmiş WordPress GitHub deposuna ve dallar listesine baktığınızda, her dalın adlandırıldığını göreceksiniz X.Y-branch. Böylece alt alan adlarınız örneğin 3.6-branch. Bir alt alanın bir rakamla başlamasına izin verilip verilmediğinden emin değilim (olması gerekir, ancak barındırıcınıza sorun) ve sonra adlı bir alt alt alan adı 6-brancholan bir alt alt alan edinme sorunu var 3ve başka bir tane 2. Ve bir alt alanda 2- ve 3 sürümlü dalları eşleştirmek , elde etmek istediğiniz şey değildir.

Kısacası: Sadece checkout 3.6-branchşubeleri değiştirmeniz gerekiyorsa.

Nr.2. Eğer mevcutsa arzu temayı submodule (bunun için kendi git repo yapmak istiyorum, tezi kullandığım için zaten oluşturulmuş olan sunucudan dahili olarak kapmak için boş bir tez git repo kurulumuna sahip olmak istiyorum)

Thomas "@toscho" Scholz , WordPress dizininin dışındaki temaları işlemek için bir alt alan kullanmamıza izin veren güzel bir eklenti yazdı. Sen de bulabilirsiniz bu cevap hem de bunda . WP 3.6'dan beri otomatik güncellemeler bile temalar için çalışacaktır.

Aynısını wp-config.phpdosyanızda aşağıdaki sabitleri ayarlayarak MU-Eklentileri ve Eklentileri için de yapabilirsiniz :

define( 'WP_PLUGIN_DIR',   'path/to/your/plugins.dev/folder/plugins' );
define( 'WP_PLUGIN_URL',   'https://plugins.dev/plugins' );
define( 'WPMU_PLUGIN_DIR', 'path/to/your/plugins.dev/folder/mu-plugins' );
define( 'WPMU_PLUGIN_URL', 'https://plugins.dev/mu-plugins' );

Şimdi tüm eklentilerinizi ve temalarınızı sürüm kontrolü altına alın ve sunucunuza aktarın. Mu eklentileri veya ağı etkinleştiren varsayılan eklentileri kullanarak bunların tümünü kolayca kullanabilirsiniz.

Nr.3 kullanıma alma ve değişiklik yapma, müşteri incelemeleri, yaşamak için zorlandıktan sonra, veritabanı komut dosyası, serileştirilmiş URL değerlerini localhost'tan (veya alt alan adından) canlı URL'ye otomatik olarak değiştirmeye başlar.

Toms komut dosyası / eklentisi şu ana kadar size yardımcı olmazsa , GitHub'da çekme isteğini kabul ettiği söylenir .


2
2 ay içinde bu siteye
katıldım

@GM hehe :) Evet, öyle. Genel olarak, neden hala tek sitemiz olduğunu anlamıyorum. Bir ağ kurulumuyla, ana alanınız / siteniz aslında tek site kurulumunuzla tamamen aynıdır. Bunun üzerine birçok seçenek ve olasılık elde edersiniz.
Kaiser

Genel olarak, katılıyorum. Tek site yüklemesinin nedenleri şunlardır: 1) sınırlı sunucu erişimi 2) mevcut kodun büyük kısmı (eklenti, temalar, snippet'ler) düzgün çalışmıyor veya yeni ağ yüklemelerinde sorun yaşıyor. Bu nedenle, kodunuzu kendiniz yazmaz / yazamazsanız ve aslında bir ağ anahtarına ihtiyacınız yoksa, tek bir yükleme kullanmak tercih edilir.
gmazzap

1
Toms betiği çalışmazsa, PHP kullanıcı ülkesinde Serialized adlı tam özellikli Serialized ayrıştırıcı vardır .
hakre

@hakre Her zamanki gibi: Lütfen sadece sorumu düzenle :)
kaiser

3

Tam özellikli bir cevap yazmak için zaman yok (topal biliyorum) ama muhtemelen yine de paylaşmaya değer (Bunu da bir blog yazısı planladığım için bunu düzenleyebilirim):

Bu, tam olarak dahil edebileceğiniz bazı gövde / sürüm dalı tabanlı WP kurulumuna sahip olabileceğiniz anlamına gelir. temalar ve eklentiler.

Bu bir bağımsız (yerel) havuz olduğundan, bunu ssh ile diğer havuzlara, örneğin bir havuza aktarabilirsiniz:

  • Bu, sitenin dağıtılması gereken uzak ana bilgisayarda bulunur (çıplak repo).
  • Bu ana bilgisayarda başka bir depo yapmak için kancalar var, sadece ittiğin değişiklikler.

Bu, web odaklı Git iş akışında özetlenmiştir (Kasım 2008; Joe Maller tarafından) .

Ardından, wp-config.phpüzerinde çalıştığı sisteme göre betonu seçen bir yapılandırma anahtarınız varsa, repo içindeki tüm ana bilgisayarları (geliştirme, canlı, evreleme, arkadaşlar, ...) bile merkezi olarak yapılandırabilirsiniz.

WP'deki yukarı akış değişiklikleri, yalnızca altağaçta alır ve birleştirirsiniz.

Sadece güncellediğiniz ve uyguladığınız eklentiler.

Dağıtım basittir $ git push remote.

Git depoları, veritabanı ve yüklenen dosyalar için uzak ana bilgisayarda günlük yedeklemeler çalıştırın ve bu ucuz, geliştirici dostu ve esnektir. Bu, tek geliştirici kurulumları ve küçük ekipler için iyi çalışır, çünkü herkes uzaktan kumandadaki çıplak reprodan ödeme yapabilir.


Bazı uyarılar var:


Şimdi kontrol listeniz ve yukarıda açıklandığı gibi kurulumla:

1. Git ortamımı dahili olarak kendi sunucumda kullanmak, depoları işlemek için Github kullanmak istemiyorum.

Github burada yalnızca yukarı akış depolarını (Wordpress) işler, kendi kopyalarınızı değil.

2. Git dalı oluşturulduğunda alt alan adlarının otomatik oluşturulması (development.domain.com, ryan.development.domain.com) - Muhtemelen bazı kabuk komut dosyası kancaları bunun için idealdir.

Belirtildiği gibi kurulum, saha başına bir repo ile modüler bir yaklaşımdır. İstediğiniz kadar geliştirme ana bilgisayarını işleyebilir, birden çok etki alanını işlemek için çok siteli bir yükleme ile aynı şekilde iyi çalışabilir, ancak bu, bu yaklaşımda bir wordpress kurulumu olarak sayılır.

3. Phing PHP / Shell betiği itme üzerine seri veritabanı değiştirme işlemek için db geçiş ( http://interconnectit.com/products/search-and-replace-for-wordpress-databases/ gibi ) işleme

Burada sadece kod sürüm kontrolü altında olduğu için veri tabanları gerekli değildir, veritabanları geliştirme (aşamalandırma) ve üretim arasında olması gerektiği gibi bağımsızdır.

Etki alanı taşıma işlemini doğru yapan bir yükleme komut dosyası arıyor olabilirsiniz, ancak serileştirilmiş veri arama ve değiştirme ile ilgilenen daha iyi kodla (mevcut) bile, bu kurulumda normalde değişiklikleri yaşamak için zorlamanıza gerek yoktur. , test senaryoları için içeriği hızlı bir şekilde geliştirme veritabanında oluşturabilirsiniz, bu normalde en küçük sorundur (pratik deneyimimden, sizinki farklı olabilir, ancak bu tür veritabanı göçüyle ilgili konuları bununla ilgili sorularda tutmanızı da öneririm burada kendi sitelerinde - ama lütfen onlara sorun).

Kendi sunucumda yaklaşık 200 site çalıştırıyorum ve bu siteleri güçlü bir git iş akışı ortamına uygulamaya başlamak istiyorum, böylece çalışmamı daha iyi düzene sokabilirim.

Bu sitelerin bir dize git iş akışı ortamında nasıl olacağını hayal bile edemiyorum. Belki burada yönettiğiniz yapılandırma komut dosyaları ve yapılandırma verileri git sürüm kontrolü altında tutulacaktır. Bu mantıklı olabilir. Aksi takdirde sitelerin sırf miktarı ile ben bir git repo tüm bu tutmak hiç mantıklı olduğunu düşünüyorum. Belki de bunlardan biri değil, çünkü yukarıda özetlediğim şey, yalnızca kurulum görevleri için değil, geliştirdiğiniz siteler için (WP çekirdek kodu dahil). Bu nedenle, öncelikle kendinize bu 200 sitenin küçük bir haritasını ve bunların birbirleriyle nasıl etkileşime girdiğini ve bu sitelerin hangi paketlerden (WP çekirdeği, Eklentiler, Temalar) oluştuğunu oluşturmanız gerekir. İlk şey bir elektronik tablo / matris oluşturmak ve tüm siteleri koymak olabilir.

Daha sonra CSV olarak kaydedebilir, sürüm kontrolü altına alabilir ve dağıtım komut dosyalarının bu dosyaya göre çalışmalarını gerçekleştirebilirsiniz.

Ve görevleri otomatikleştirerek bir şey öğrendiysem: Unix felsefesini takip edin, mevcut ve iyi çalışan araçları kullanın (bazı komutları okumak için yarım gün geçirmek daha sonra alternatifler aramaya çalışmak daha iyidir çünkü çoğu iş için problemler çözüldü) ve komut satırı araçlarına odaklanın. En güçlüler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.