Geliştirme, Test Etme ve Serbest Bırakma


10

Wordpress sitelerinizi nasıl geliştirir, test eder ve hayata geçirirsiniz?

Özellikle veritabanları söz konusu olduğunda, her zaman biraz faff buluyorum - esas olarak, bir test sitesine sahip olmanın, tüm bağlantıların değiştirilmesinin dışında, tam olarak aynı olabilen tamamen yeni bir veritabanına ihtiyaç duyması nedeniyle. canlı site yerine test URL'si.

Benzer şekilde, kullanıcıların bir hatayı düzeltmek veya yeni bir şey geliştirmek için en son ihtiyaç duyduğunuzdan bu yana yüklediği tüm yüklemelerin test sitesine kopyalanması gerekir.

Diğerleri nasıl yapıyor? Sadece faff'a katlandın mı? Yardımcı olan akıllı sürüm kontrol sistemleri kullanıyor musunuz?

Teşekkürler


Bir sistemi hosts dosyanızı değiştirme etrafında döndürürseniz, test DB'nizle uğraşmanıza gerek kalmaz. ( wordpress.stackexchange.com/a/10943/9142 )
Alexander Bird

Yanıtlar:


12

Dağıtım iş akışına giren bir miktar kişisel felsefe var. Sunucular ve sürüm kontrolü, işletim sisteminiz, barındırma, müşterinin deneyimi ve teknoloji kültürü vb. İle ilgili deneyiminizi bilmeden doğrudan cevap vermek kolay bir soru değildir.

  1. İşte çok fazla açıklaması olan benzer bir soru .
  2. İçerik dağıtımı için Crowd Favorite'in RAMP eklentisine göz atabilirsiniz .
  3. WP Hackers dağıtımlar hakkında iyi bilgi bulmak için harika bir konu.

Şahsen, temalarımda mutlak URL'leri hiçbir zaman sabit kodlamamaya dikkat ediyorum. Bloginfo () veya kodu göreli URL'ler kullanın. Wp-config.php dosyamda çok fazla koşullu kullanıyorum. İşte benim wp-config düzenlemelerimin vanilya versiyonu.

switch($_SERVER['SERVER_NAME']){
    case 'dev.yourdomain.com':
        $db_host = '';
        $db_pass = '';
        //define debugging
        break;
    case 'stage.yourdomain.com':
        $db_host = '';
        $db_pass = '';
        break;
    default: //Live
        $db_host = '';
        $db_pass = '';
}
define('DB_PASSWORD', $db_pass);
define('DB_HOST', $db_host);

//You could also set this as a variable above
define('WP_HOME', 'http://'.$_SERVER['SERVER_NAME']));
define('WP_SITEURL', 'http://'.$_SERVER['SERVER_NAME']));

Ben takip eden bir çok sitede çalışıyorum

  • local (kişisel bilgisayar korsanlığı :) dizüstü bilgisayarımın web sunucusunda)>
  • dev (istemci sunucusunda test etme)>
  • Aşama (KG için sabit kaynak - içerik düzenleme)>
  • prodüksiyon (canlı site)

Son olarak, GIT veya SVN gibi dağıtımlarınıza yardımcı olması için bir sürümleme aracı kullanmanızı öneririm. Süreci önemli ölçüde kolaylaştırır ve ortamlar arasındaki kaynak bütünlüğünü korur. Yerelde çalışmak, sahnede ve prodüksiyondaki komut satırı ile kolayca güncellenir. Keşif sırasında, projede çalışan geliştiriciler varsa, sizin ve istemcinin en baştan hangi sürüm denetimini kullanacağını tanımlamak en iyisidir. Kişisel olarak GIT'i sürüm kontrolüm için kullanıyorum. Ancak, bir müşteri SVN kullanıyorsa, yerelde ikisinin bir karışımını yapıyorum, bu yüzden de repolarını taahhüt ederken kendim için bir repo tutuyorum.

Nadiren bir ortamdan diğerine taşınma sorunları yaşıyoruz. Yerleşik medya vb. İçin URL'yi uygun şekilde değiştirmek üzere DB'de bir bul / değiştir yapıyoruz ...


Bu çok faydalı! :) Çok teşekkür ederim. Farklı sunucuların her birine her dağıttığınızda, veritabanını canlı siteden çoğaltır mısınız? KG ve içerik düzenleme için bir hazırlama sunucusuna (stage.domain.com) dağıtım yaptığınızı söylüyorsunuz. Sahne alanı sunucusunu canlı sitede çalıştırırken veritabanı değişirse ne olur? yani siz veya müşteriniz sahnede oturum açar ve bazı içerikleri günceller, ancak aynı zamanda bir katılımcı canlı sitede yeni bir makale yayınlar mı? Sadece canlı sitede AGAIN içerik düzenlemelerini etkiliyor musunuz? Veritabanı yapısı değişiklikleriyle nasıl başa çıkıyorsunuz?
Thomas Clayson

Tüm sorular için kusura bakmayın! : p Zaman ayırdığınız ve yardım ettiğiniz için çok minnettarım.
Thomas Clayson

Yeni bir özellik grubunda prod> sahneden çekebilirsiniz. Yeni özelliğin içeriğini ekleyin, ardından sahne alanı> prod. Oradan, sahne prod yüksek sadakat kopyasıdır ve sahne> dev çekebilirsiniz. Genellikle DB'yi sahneden geri çekeriz. DB ile değiş tokuşların çoğu, bir özellik db mimarisini değiştirmedikçe aşamadan eşyaya olur.
Brian Fegter

İçerik dağıtımı için sahne alanı kullanmak ve hiçbir zaman ürüne dokunmamak istiyorsanız, daha önce gönderdiğim RAMP eklentisine göz atabilirsiniz.
Brian Fegter

Bazı tahriş edici eklentilerin URL'leri serileştirilmiş dizilerde saklamakta ısrar etmesi ve bir şeylerin DB'sinden diğerine hareket etmesini bertaraf edebilmesi şartıyla yukarıdaki her şeyi + 1'leyin. Mesele, serileştirilmiş dizilerin dize uzunluklarını depolaması ve uzunluk değiştiğinde kesilmesidir. Bu nedenle, mümkünse env'nin alan adlarını aynı tutmanızı öneririm, örneğin dev.example.com, tst.example.com, www.example.com vb.
webaware
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.