PHP Dağıtım Windows / Unix sunucular için

5 Cevap php

Biz linux / windows sunucuları karışımı için dağıtılması gereken pencerelerde geliştirilen çeşitli php projeler (xampp) var.

Biz linux sunuculara pencerelerden dağıtmak için geçmişte capistrano kullandım, ama mimarlık ve pencereler sunucuları son değişiklikler çalışmıyor eski yapılandırma bıraktı. Tarifi linux dağıtımı için çalışıyor, ama windows sunucuları kurma şu anda var daha fazla zaman gerektirmiştir. Capistrano tarifi için fikirler geçerli cevaplar. Açıkçası windows / linux sunucularının kullanıcıları paylaşmak değil, bu nedenle bu o (her yerde aynı kullanıcı adı / şifre capistrano varsayımı için) bir tad zorlaştırmaktadır.

Bu üretim sunucularında asılı tüm svn dosyaları bırakır beri şu anda biz, sevmediğim windows sunucular için svn-güncelleştirme kullanıyoruz. (Ve biz hala elle svn-güncellemek için windows onları var) Ve dosyaları elle güncellenmesi WinSCP kullanarak ve kendi linux meslektaşları ile dizinleri senkronize.

My question is, what tools/setup do you suggest to automatize this deployment scenario: "Various php windows/linux developers deploying to 2+ mixed windows/linux machines"

(Ps: biz cygwin aracılığıyla çalışan linux aletleri falan herhangi bir sorun yok, biz sadece dağıtım basit bir adım işlemi yapmak gerekir)

edit: Currently we can't work on a all-linux enviroment, we have to deploy to both linux and windows server. We can start the deploy from anywhere, but we'd prefer to be able to do it from either enviroment.

5 Cevap

Ben istemci ortamına bağlı olarak 4 farklı yaklaşımlar kullanır:

  1. Capistrano ve benzer aletler (etkili, ancak karmaşık)
  2. rsync Windows, Linux, Mac + dan (basit, disiplin uygulamak değildir)
  3. svn Windows, Linux, Mac + dan (basit, disiplin uygulamak değildir)
  4. On-sunucuya komut (tarayıcı üzerinden çalıştırmak, kompleks)

İhtiyacınız ne sürücü bazı gereksinimleri vardır:

  • Uygulamak istediğiniz ne kadar disiplin
  • Eğer (veya yapılandırma) göçler (yukarı ve / veya aşağı) veritabanı gerekiyorsa
  • Eğer statik istiyorum "Biz aşağı konum" sayfa
  • Kim güncellemeyi yapabilirsiniz
  • Sunucular arasında yapılandırma farklar

Ben kuvvetle seni kendinden kurtarmak için yeterli disiplin uygulanması tavsiye: Bir gelişme sunucuya dağıtmak yukarı göçler ve basit veritabanı geri yükleme için izin ve dev sunucu açıktır sorumlu yöneticilerden az sayıda (için canlı sunucu güncelleme kişileri sınırlamak Daha geliştiriciler). Ayrıca (geliştirme sunucuya) bir cron job ile iterek düşünün, böylece artan değişikliklerin günlük anlık var.

Çoğu zaman, ben de svn veya rsync kurulumları yönetici kümesi birkaç geliştiriciler sınırlıdır, özellikle birkaç sunucu tarafı komut ile, yeteri kadar olduğunu bulmak.

Bu belki saçma gelebilir ama ... Ben sonunda karar verene kadar bu tür bir sorunun her zaman için kullanılan ben hep yaşıyorum deploying Linux üzerinde, ben gerektiğini gerçekten en azından try {için [(1)]} Linux üzerinde de. Ben yaptım. Bu ücretsiz ağrı oldu. Ben geri dönmedim.

Şimdi. Ben bu herkes için demiyorum. Yüklemek Ama eğer, VirtualBox Eğer bir Linux windows kutusunda yerel bir sunucu olarak yükleyin çalıştırabilir. Sanal makinede bir klasörü paylaşmak ve tüm bilinen ve Windows yazılımı ve teknikleri and her şeyi kendi hedef platformu üzerinde iyi çalıştığını bilmek aklın parça var güvenilen kullanabilirsiniz.

Artı dağıtım için Capistranoda (iyi bir seçim) geri gitmek mümkün olacak.

En iyisi, size masaüstünde günlük kullanmak kadar Linux / Unix beklemek biliyordu düşündüm! Kim hatta bunun gibi olabilir bilir :)

Capistrano gördüğüm en güzel dağıtım aracıdır. Mimari değişiklikleri tekrar çalışır böylece imkansız yapılandırmaları düzeltmek için yapmak mı?

Neden artık Capistrano kullanamıyorum?

Eğer svn-güncelleştirme sevmediğim Neden?

App şeyler ne bir özel dağıtım gerektirir?

Sen kurulum yapılandırma dosyalarında svn:ignore özelliği, svn update onları silmez ve daha sonra svn export /target/path/ [(3)] {kurtulmak için kullanabileceğiniz böylece Subversion deposunda} dosyaları.