Bir SVN deposu içine bir site alırken nasıl web config dosyalarını işlemek gerekir?

5 Cevap php

Ben bizim web sitelerinin tümü için SVN depoları kullanmaya başlıyor ve en iyi uygulama web config dosyaları ile ilgili ne olduğunu bilmek istiyordu.

Onlar deposunda saklanmalıdır? Sorun web sitelerinin yapılandırma canlı sitelerin daha çalışma kopya için farklı olması gerekir olduğunu. Ben geri config dosyası da güncellenmiş olacak ve daha sonra potansiyel canlı siteye yüklenen alabilir Depoya zaman benim makinede test edebilirsiniz böylece bir çalışma kopyası için config dosyasını düzenleyin.

Insanlar genellikle yapılandırma dosyaları ile ne yaparsınız, vb kaydedilmesini yaparken yapılandırma dosyaları atlamak için SVN anlamanın bir yolu var mı?

5 Cevap

Onlar önemli bilgileri saklamak Genelde, bu sürüm kontrolü içine yapılandırma dosyaları koymak en iyisidir.

Burada ASP.NET siteler konuşuyor, ben kesinlikle SVN'de config dosyasını yerleştirmek istiyorum. Sen inheritInChildApplications kullanarak ASP.NET yapılandırma dosyalarını birkaç hile oyun ve allowOverride kullanmak için yerel bir hata ayıklama sürümünü zorlamak için izin verebilir (How to: Lock ASP.NET Configuration Settings bakınız) aynı yapılandırma dosyasını kullanarak rağmen son üretim versiyonu farklı ayarları: sadece yerel hata ayıklama IIS bir alt dizin olarak monte et ve geçersiz kılmak isteyen birkaç bölüm kilitleyin. Ve tabii ki, sadece özellikle zor bit için iki yapılandırma anahtarları içerebilir ve yüklemek için kod kontrol edin.

In general, it's good practice anything SVN mümkün olduğunca az manuel adımları içeren bir süreç dağıtma yapmak. Yani zaman baskısı altında doğru yapacağım daha olası hale getirir, ve bu datacenter yaylar bir sızıntı olduğunda, diyelim ki (önyükleme için felaket kurtarma kolaylaştırır ve sen var kadar bazı geçici kutusunu web sitesine yüklemek istiyorum bu yedekleme) sınıflandırılmaktadır. İdeal olarak, en fazla bir derleme ile bir svn checkout veya ihracat web sitesi kurma ve çalışan almak için yeterli olacaktır. Ben svn (javascript kompresör ve etajer gibi şeyler) doğrudan hatta ikili dll-bağımlılıkları dahil böylece sunucu üzerinde yükler özel kütüphanesinde bir demet gerektirmeden çalışan ve sadece Msbuild ile bir dev makine üzerinde derlemek gerekir.

For PHP, prensip aynıdır. Ancak, farklı numaralar gerekir. Örneğin, bazı küresel sistem ortam değişkeni denetler şekilde config dosyasını yazmak olabilir, ve sonra bir dev makine ise geçersiz kılar ayarları seçilir. Örneğin, ben IP adresini kontrol buna benzer bir kurulum ettik; Tüm dev makineler, belirli bir IP bloğu vardır; bir makine bu IP bloğunda sürece, o (çeşitli izleme vb seçenekleri etkinleştirmek değildir) bir üretim makinesi olarak kabul edilir. Ayrıca ana bilgisayar adını veya tüm geliştiriciler geliştirme makineleri ayarlamak kabul sadece herhangi bir eski ortam değişkeni kontrol edebilir.

Ben SVN config dosyaları tutmak için elinden geleni düşünüyorum. Evreleme / üretim ortamına için ayarları ile ilgili olarak, biz ne her ortam için ayrı yapılandırma dosyaları var, sonra (Ant ve MSBuild kullanarak) bizim inşa sürecinin bir parçası olarak onları takas etmektir. Yani Biz üretim web.config dosyasını kopyalamak bir "üretim build", tetikleyebilir.

Bu sitenin fonksiyonu genellikle önemli olduğu gibi ben, kesinlikle, sürüm kontrolü dosya olurdu. Yaşamak için yüklü elde durdurmak için, (örneğin, Web Deployment Project), hangi 'canlı' bir sürümü ile yapılandırma geliştirme sürümlerini geçmek istiyorsunuz bir yapı komut bakmak olabilir.


Bununla birlikte prensip aynıdır - Üzgünüm, sadece bu bir PHP sitesi olma hakkında yorum gördüm, bağlantıyı görmezden.

Sizin dev / canlı ortamlar arasındaki değişkenleri sadece connecionstrings ve AppSettings'i sınırlıdır, o zaman ayrı dosyalar halinde web.config bölünmüş ve her ortam için yüklenen farklı bir dosya olabilir. Bu şekilde, SVN'de içine her şeyi kontrol ve sadece size dağıtma hangi ortam bağlı olarak WebConfig içinde dosya başvuru güncelleyebilirsiniz.

http://kartones.net/blogs/kartones/archive/2009/09/29/asp-net-split-appsettings-and-connectionstrings-to-separate-files.aspx

Düzenleme: Sadece PHP bahsediyoruz görüldü.

Genel olarak en iyi uygulama sürüm denetimi altındaki tüm özel yapılandırma dosyaları saklamak için. Sen üretim ve geliştirme sürümleri için ayrı bir yapılandırma dosyası tutmak isteyebilirsiniz.

Eğer mümkünse, ayrı dosyalar halinde dağıtım ortamı (bağlantı dizeleri, yolları, vb) bağlı tüm yapılandırma bölümleri ayıklamak deneyin. Eğer geliştirme üretim ortamınızı değiştirmek başvuru güncelleme meselesi olacak, böylece daha sonra, ana (ortak) yapılandırma dosyasından onlara link.