Otomatikleştirme Wordpress Geliştirme ve Dağıtım

2 Cevap php

Hiç kimse farklı yerlerde birden çok geliştiriciler ile bir WordPress proje üzerinde çalıştı? Dağıtılmış geliştirme ekipleri ve otomatik dağıtımları çevresinde en iyi uygulamalar var mı?

Ben eklenti geliştiricileri, tema geliştiriciler, ve birkaç farklı yerlerde basit CSS stil tweaker'ları, dahil geliştiriciler değişen derecelerde, bir ekibimiz var, ve ben kurulum için onların ayrı parçalar üzerinde çalışmaya muktedir herkes için iyi bir sistem istiyorum ve sürekli başkasının kodunu bozmadan değişiklikleri dağıtmak.

Sistem şu anda WordPress-MU bir yüklemesini çalıştıran, ve sonunda 3.0 yükseltilmiş olacaktır. İdeal olarak, kaynak kontrol temaları ve eklentileri saklamak istiyorsunuz, ve bir kaç değişiklik çekirdek WordPress kod yapılmaya başlandığından beri, o da depoya gitmek zorunda. Ben sorun depo yapısı ve kontrollü ama biraz otomatik dağıtımları yapmak için en iyi yolu bulmaktan yaşıyorum.

Eklentiler ve temalar farklı dosya sistemi veya veritabanı yapılandırmaları saklayabilir zaman nasıl çalışıyor ve geliştirme dağıtma, test, evreleme ve üretim ortamları, ele? , Ben ", WordPress kullanmayın" cevap olabilir farkında ama ben, bana ne düşündüğünüzü bildirmek zorunda varsayarak

Yardımlarınız için teşekkürler,

Dave

2 Cevap

Ben bugüne kadar bu sorunu çözme sona nasıl:

Kaynak kodu dizinleri:

build/ - build files for phing and environment-specific properties files
    build.xml
    src_qa.properties - properties to use the qa server as the source for a deployment
    dst_qa.properties - properties to use the qa server as the destination for a deployment
    etc... for other environments
conf/ - contains environment specific configuration files, each in a subfolder named after the environment
    dev/
        db-config.php - config file for HyperDB - http://codex.wordpress.org/HyperDB
        default - Apache conf that holds ServerAlias configs for multi-site WordPress
        hosts - useful for developers to redirect their browser to various domains in different environments
        htaccess.dist - for WPMU
        httpd.conf - main Apache config file, specific to each environment
        my.cnf - mysql config file
        wp-config.php - main wordpress config file
    qa
        (same as dev/ but with different values in each file)
    staging
        (same as dev/ but with different values in each file)
    prod
        (same as dev/ but with different values in each file)
src/ - wordpress source code
    wp-admin/
    wp-content/
        mu-plugins/
        plugins/
        themes/ 
    wp-includes/
test/ - holds WP test suite and custom tests for plugins, themes, etc...

Ben Hudson CI sunucusu kullanıyorum (http://hudson-ci.org/) otomatik ve manuel Temel, Hudson sunucu etmek istediğinize bağlı yıkıcılık kodunu çeker .. vs yıkılma çıkış görevleri, Phing ve phpunit kullanarak inşa etmek için dağıtmak, ve rsync hedef sunucuya dışarı CI sunucudan konuşlandırılacak dosyaları bulunuyor.

Ya da, üretime doğrudan evreleme bir dağıtım durumunda, Hudson rsync ve sonra tekrar üretime kadar, aşağı CI sunucuya, evreleme dosyaları bulunuyor.

Ben işlevsellik aşağıdaki parçaları için hudson işler kurulum kurmak var:

core WP code - deploys core WP files and mu-plugins from src to dst
    svn to qa
    svn to staging
    staging to prod
WP plugins/ folder - deploys only the plugins folder 
    svn to qa
    svn to staging
    staging to prod
WP themes/ folder - deploys the entire themes folder
    svn to qa
    svn to staging
    svn to prod
Specific themes - deploys a specific theme (chosen through a drop down during the build process using Hudson's parameterized build feature - http://wiki.hudson-ci.org/display/HUDSON/Parameterized+Build)
    svn to qa
    svn to staging
    svn to prod

Hudson işleri de her sunucuda uygun yerlere belirli ortam PHP dosyalarını (örn. wp-config.php, db-config.php) yanı sıra, Apache ve MySQL yapılandırma dosyaları dağıtmak için yeteneği var. Bazı durumlarda, birden fazla web sunucuları ve çoklu veritabanı sunucuları için dağıtmak ve yapı yapılandırma çoğu Phing yapı dosyası yoluyla halledilir ve. Dosyaları özellikleri yukarıda belirtilmiştir.

Biz geliştirme entegrasyon ortamı olduğunda Gelecekte, muhtemelen herhangi bir kod svn tarihi üzerine otomatik dağıtımları yapacağız.

Bu kurulum farklı skillsets (CSS / HTML, PHP vs ağırlıklı) ile organizasyonun farklı geliştiriciler ayrı ayrı çalışmak ve kod gereksiz kişilik bir grup içeren olmadan hızlı bir şekilde uygun ortamlarda dışarı değişiklikleri almak için izin verir. Hudson doğru insanların bunları yapılandırmak ve onları tekmelemek için sadece erişiminiz yüzden bana farklı dağıtım işleri kilitlemek için izin verir.

Ben kurulum var ne yüksek düzeyde bir genel tür, bana ne düşündüğünüzü bildirin. Bu kurulum ile büyük sıkıntılar keypairs, kullanıcı hesapları ve tüm farklı sunucular arasında rsync ile dosya izinleri oldu.

Dave

Dosya sistemi için biz GIT kullanımı ve çok iyi çalışıyor. Her takım üyesi için bir şubesi var ve daha sonra üretim dalı içine birleştirebilirsiniz. Biz herhangi bir sorun whitout entegre bizim kodunu tutabilirsiniz.

Ben eşya veritabanı damping ve herkes ile paylaşmaya devam veritabanı için (hatta GYTE repo gönderebilirsiniz ve sonra herkes en son dökümü olacaktır).