SVN dağıtımı sırasında dev ve canlı ortamlar arasındaki yapılandırma farklılıkları koruyarak

4 Cevap php

Biz web siteleri oluşturmak için ExpressionEngine CMS (php) kullanın. Her site için, biz bir subversion deposu kurmak ve kullanılan vb EE kurulumu yanı sıra herhangi bir özel şablonlar, görüntüler, javascript, taahhüt. Çevre değişkenleri ve. Htaccess dosyasının tüm içeren dosya deposunda dahildir.

Biz geliştirmek için kullanmak post-commit ile güncellenebilir depo çalışan bir kopyası ile bir geliştirme sunucusu var. Biz, subversion bir şube oluşturmak üretim ortamı için gerekli herhangi bir değişiklik yapmak, sürüm numarasını etiketlemek, depo ihracat, canlı sunucuda yeni bir dizine yükleyin ve yerine dosyaları sembolik bir link serbest bırakmak için hazır olduğunuzda. Bir geri alma geri önceki sürüme sembolik bağlantılarını kadar basittir.

Sorun dev ve üretim sunucuları için farklı olması gerekir ortam değişkenlerini değiştirmek zorunda adımdır. Alanları vb aşağı boyutu ve http bağlantıları tutmak için bir karartılmış dosya içine javascript aza indirmek komut dosyalarını çalıştıran, farklı, çünkü bu (un) google harita API anahtarları takas, yanlış yerlere yönlendirmek istiyorum htaccess kuralları yorumlama gibi şeyler olduğunu .

Soru nasıl bu daha otomatik olabilir mi? Biz yürütmem bırakma prosedürü aşağı almak isterim. Böyle Capistrano gibi araçların varlığı ile aşina değilim ve emin olun ama ben onlara gerekli tüm dosyaları değiştirmek için almak nasıl emin değilim ... nasıl böyle bir şeyi düzenlemek istiyorsunuz? Belki bir zamanlar her hafta çift olduğunda bu değer vakit otomatik mi?

4 Cevap

Yapılandırma seçenekleri bir sürü $ _SERVER ['HTTP_HOST'] anahtarlama tarafından ele olabilir.

Örneğin

switch ($_SERVER['HTTP_HOST']) {
    case 'developement.domain.com':
    	$api_key = "dev environment api key";
    	break;
    default:
    	$api_key = "live environment api key";
}

Sonra sizin için AccessFileName yönergesini kullanarak vhost tanımına alternatif bir htaccess dosyası ayarlayabilirsiniz htaccess konular..:

<VirtualHost *:80>
    ServerName sitename
    AccessFileName .htaccess-dev
</VirtualHost>

I Subversion ignore list yapılandırma dosyası ekleyerek bu sorunla başa. Zaten burada ele alındı ​​Stackoverflow üzerinde: see question #149485

Temelde, ben sadece SVN'de setup.default.php tutmak ve her kurulumda ben elle listesini göz ardı üzerinde olan setup.php kopyalayın. Bu repo geri kontrol edilmesi için dosyayı engeller. Bu dosyaya değişiklikleri ve gereklilik olarak ortaya çıkar ele alınabilir nadiren vardır.

Başka bir alternatif bir salma dala, bir kez yapılandırma dosyalarını şube ve ardından hedef düzenlenmiş olarak işaretlemek ve daha sonra üç-yollu birleştirme nasıl hatırlıyorum bir birleştirme komut dosyası kullanmaktır. Kaynağı yapılandırma değişiklikleri ise muhtemelen hedefe benzer değişiklikler yapmak gerekir, çünkü, o zaman muhtemelen iyi bir şey, bir çatışma, üretecektir.

Geliştirme, ve bırakın: Böylece, projenin ömrü boyunca giden iki ağaç devam. Şeyler geliştirme olgun gibi, serbest onları üzerinden entegre. Eğer daha karmaşık bir salınım sürecini varsa, hem de üçüncü, QA, ağaç olabilir.

Eğer yeni bir sürümünü çekin, bir marka yeni bir şube çekin yerine, (bir birleştirme / entegrasyonu gibi) "serbest" alanına çalışma alanına kopyalayın. Ayrıca bu noktada serbest ağacının bir anlık-in-zaman isterseniz, o zaman arşiv amaçlı kullanmak ayrı bir şube / kopyala / etiket yapmak.

Btw: Bu Perforce parlar alanlarından biridir - bu zaten birleştirilmiş ne hatırlar, ve şimdiye kadar iki kez birleştirme girişimi değildir.

Biz bir config-belirli bir dizin sürdürerek bu anlaşma.

Farklı. Htaccess ve dev ve üretim arasındaki config.php dosyaları varsa Yani, örneğin onlar muhafaza edileceğini göstermektedir / gövde / config / {ortam} /

Biz serbest paketleri oluşturmak için dumanlı / ant komut dosyalarını kullanmak ve komut her ortam için bir yapı görev var. Bu görevler yapılandırma belirli dosyaları almak.

-

Bir diğer yorumcu HTTP_POST açmak için öneriyor. Ne yazık ki (yeterince yüksek temsilcisi), doğrudan yorum yapamam. Bu değeri müşteri gelir bu yana çevre yapılandırmasını belirlemek için HTTP_POST kullanarak olası güvenlik sorunları var.