Gurur duyduğum bir kurulumum var ve ekibim için çok iyi çalışıyor.
Genel yapı
Tüm kurulumu devam ettim. Tüm değişiklikler, bir sistem güncellemesi yapmak, bir eklenti eklemek / güncellemek, bir tema eklemek / güncellemek, aynı iş akışından geçmek. Değişiklikler bir an önce geri alınabilir. Bir dağıtım sunucusu (eski P4 masaüstü) çalıştıran var gitosis ancak aynı kolaylıkla GitHub veya kullanabilir gitolite . Git'te iki "özel" şubem var master
ve develop
(aşağıda daha fazla açıklanmıştır). Üretim ve hazırlama sunucularım bulut tabanlı.
Geliştirme Ortamları
Her geliştirici kendi geliştirme sunucusunu kendi makinesinde çalıştırır. Veri tabanları açısından, canlı verilere ihtiyaç duyulması neredeyse hiç sorun olmamıştır. Biz esas olarak tema birimi test verilerini kullanıyoruz . Aksi halde ihracat ve ithalat çoğu şeyi kapsar. DB parçası çok önemliyse, çoğaltmayı ayarlayabilir ya da isteğe bağlı senkronizasyon için bir şeyler ayarlayabilirsiniz. Başlangıçta bu yapıyı kurduğumda, bunun çok önemli olacağını düşündüm, bu yüzden bunu yapmak için bir takım araçlar yazmaya başladım , ama şaşırtmak için gerçekten gerekli olmadılar. (not: gerekli olmadıkları için onları cilalamadım, bu yüzden hatalar var, örneğin seri hale getirilmiş verideki etki alanının yerini alacak).
Evreleme Ortamı
Kaydedilmesini itilir zaman develop
gitosis dala, bunlar otomatik bizim hazırlama sunucusuna konuşlandırılmış olsun. Aşama veritabanı, üretim veritabanının kölesidir.
Üretim ortamı
Taahhütler master
şubedeki gitosis'e itildiğinde , otomatik olarak üretim sunucusuna dağıtılır.
Wp-config.php sorunu
wp-config.php
Sunucudan sunucuya benzersiz olmak istiyorsunuz , ancak sürüm kontrolü altında da tutmak istiyorsunuz. Benim çözümüm, evreleme ve üretim sürümlerini farklı adlandırılmış dosyalar olarak .gitignore
yoksaymak wp-config.php
ve depolamaktı. Daha sonra her sunucuda, örneğin link wp-config.php -> wp-config-production.php
. Her kullanıcı kendi DB'sini kendi kimlik bilgileriyle, kendi (takip edilmeyen) wp-config.php ayarlarıyla birlikte tutar.
Diğer notlar
Olağanüstü ve ucuz olan Rackspace Cloud kullanıyorum . Bununla evreleme ve üretim sunucularımın aynı kalmasını sağlayabilirim. Ayrıca şu anda hizmetlerini WordPress içinden kontrol etmeme izin vermek için API'lerini kullanan eklentiler de yazıyorum, bu harika.
Önbellek dizinleri, dosya yükleme dizinleri vb. Hepsi .gitignore'a eklenir. İsterseniz, yüklemeleri düzenli olarak kontrol etmek ve onları gitoza itmek için bir cron görevi ayarlayabilirsiniz.
Master / geliştirme yapısı, Vincent Driessen'in dallanma modelini kısmen taklit edecek şekilde ayarlanmıştır . Ayrıca git-flow onun git uzantısını kullanıyorum ve bunu da tavsiye ediyorum.
Bir yıldan fazla bir süredir bu yapı üzerinde çalışan 10 ya da daha fazla geliştiricim oldu ve birlikte çalışmak bir rüyaydı. Güvenilir, güvenli, hızlı, işlevsel ve çevik, daha fazlasını isteyemezsiniz!