Sandboxing web sitesi en iyi uygulamalar?

2 Cevap php

Şu anda zor özel CMS gibi şeyler ve alışveriş sepeti kodu dahil hemen hemen hiçbir resmi süreçleri ve bir milyon PHP web siteleri ile web dükkanında çalışır.

Biz şeyleri iyileştirmek için çalışıyoruz. Ben CVS / SVN için bastırıyor.

Benim sorum, web sitesi çalışması sandboxing için en iyi yöntem olan ne? Biz LAMP yığını vardır. Bizim sitelerin bazıları çok www.mysite.com işaret eden bağlantılar kıracak preview.mysite.com gibi farklı bir etki alanı kurma, geçerli etki (ya da kullanıcı-girilen bağlantılar) kodlanmış var. Biz regresyon testleri uygulamaya başlamak, belki etki test için tek tip olmalıdır? Bu her zaman bir yerel ana girişi ile yapılabilir.

Yani, biz sitelerin çok sayıda dikkate alınarak, her zaman uygun bir sanal alanda önizleme yapmak için bir süreç olması güzel olurdu. Bu bir SVN / CVS döngüsü ile entegre olacağını merak.

Biz oraya çalışıyoruz çünkü ben sadece iyi endüstri uygulamaları için arıyorum. Bu ekstra bir sunucuya bir site klonlama demektir, bu yüzden olacak.

2 Cevap

Yani evet, ikinci bir STAGE sunucu olmalıdır. Ne benim dev kutusunu CVS içine benim kod koymak, ve ben birlikte gitmek gibi düzenli kaydedilmesini yapmaktır yok. Ben "AŞAMA" Sunucuya bir sürümünü itmek için hazır olduğum zaman, ben kademesi sahne ve onları etiketlemek istediğiniz dosyaları geçmesi:

cvs tag-F SAHNE

Sonra STAGE sunucuya gidin ve dosyaların STAGE sürümünü almak için STAGE bayrağı ile bir güncelleştirme yapmak:

up Cvs-r SAHNE

Bu da benim sahne sunucuda güncellemeleri ne zaman gelecek, ben sadece STAGE etiketi kapalı bırakabilirsiniz, böylece bu dosyalar üzerinde "AŞAMA" olmak üzere yapışkan etiket ayarlar:

up Cvs

Ben STAGE sunucuda benim kodu test ettik zaman nihayet, ben rsync kullanarak üretim sunucusuna rulo ...

Biz birkaç geliştiriciler bu yüzden kadar kararlı SAHNE sürümü tutmak birlikte çalışan var zor alabilirsiniz. Ben sadece bir ya da iki dosyaları küçük değişiklikler varsa bu durumda, ben sadece üretim sunucusuna üzerine onları ayrı ayrı scp'yi olacak ..

Son olarak, üretim sunucusuna kapalı bir dosya veya dosyaları gönderdikten sonra, benim üretim sunucularında üzerinde ne olduğunu bilmek sağlamak için, ben BÜLTENİ olarak benim sahne sunucusundaki tüm dosyaları etiketlemek ve aynı zamanda RELEASE20090713 veya ne olursa olsun geçerli tarih olarak. . gerekirse ben alabilirim o zaman bile anlık hareket var bu şekilde. Ama dikkat, bu yapışkan etiketi güncelleştirmek, bu yüzden benim normal eski değil

up Cvs

sahne sunucuda hala bana son STAGE dosyaları alır.

Şimdi senin durumunda, kadar kodlanmış URL gider gibi ... Sen zaten biliyorsun .. kötü kötü kötü ... bu yüzden gitmek gibi bunları düzeltmek ... Ama sahnede URL yeniden yazma yeniden apache URL kullanmak mümkün olabilir Özel bir TCP portuna konuşmak.

Eğer bir cisco router gibi akıllı bir ağ aygıtı varsa, IP kullanıcısının için PAT (port adres çevirisi) yapmak için o kadar ayarlayabilirsiniz. Port 80 düzenli üretim sunucunuza iletebilir ve liman 8080 sizin SAHNE sunucusu (liman 80) iletebilir .. Sonra yapmanız tüm apache URL SAHNE sunucu üzerinde yeniden yapmak var ve gördüğü bütün konak 8080 append. Şimdi tüm mesajlar ve bağlantıları doğru STAGE sunucularına gidecek ve apache yapılandırmaları da tam olarak aynı olabilir.

Sabit kodlanmış (veya kullanıcı girilen) alan adları ile ilgili olarak: Eğer hosts file için etki ekleyebilirsiniz. Bu gelişim ve önizleme sırasında sorunları çözmek gerekir. Tarayıcınız www.mysite.com için IP almak ve 127.0.0.1 veya hosts dosyasına önizleme sitenin IP bulabilirsiniz. Zor kısmı sadece tarayıcıda URL bakarak, size üretim yerinde bakarak ya da olup olmadığını belirlemek değil ki. (ShowIP addon Firefox için burada size yardımcı olabilir.)

CVS / SVN gelince: really tavsiyem SVN için gitmek istiyorum. Bu CSV daha kullanmak zor değil ama bazı avantajlar (örn. yeniden adlandırma mümkündür) sahiptir. Daha fazla bilgi için örneğin bkz this question.

Bir sanal alanda önizleme gelince, bu yaptığımız budur: biz trunk bizim geliştirme çoğu yapmak (ya da bir şube üzerinde, ancak sürecin geri kalanı neredeyse aynıdır). Biz müşteriye göstermek için hazır olduğunuzda, bir tag oluşturun. Bu etiket önizleme sunucuyu güncelleştirmek için kullanılır. Müşteri memnun değilse, biz müşteri biz de güncellemek için önizleme üzerinde çalışan aynı etiketi kullanmak mutlu kez etiketi, vb önizleme güncelleme, yeni bir etiket oluşturmak, gövde (veya şube) biraz daha geliştirmek üretim sunucusu. Bu şekilde biz önizleme ve üretim sunucu aynı kod tabanına sahip olduğunuzdan emin olabilirsiniz.