2008-09-16 18 views
5

Windows (xampp) üzerinde geliştirilmiş, çeşitli linux/windows sunucularına dağıtılması gereken çeşitli php projeleri var.PHP Windows/unix sunucularına dağıtım

Pencerelerden linux sunucularına dağıtmak için geçmişte capistrano'u kullandık, ancak mimari ve windows sunucularındaki son değişiklikler eski yapılandırmayı çalışmaz hale getirdi. Tarif linux dağıtımı için iyi çalışıyor, ancak windows sunucularını kurmak şu an sahip olduğumuzdan daha fazla zamana ihtiyaç duyuyor. Capistrano tarifi için fikirler geçerli cevaplardır. Açıkçası, windows/linux sunucuları kullanıcıları paylaşmaz, bu yüzden bunu biraz daha karmaşıklaştırır (her yerde aynı kullanıcı adı/parola için capistrano varsayımı için).

Şu anda, sevmediğim windows sunucuları için svn-update kullanıyoruz, çünkü tüm svn dosyalarını üretim sunucularında asılı bırakıyor. (ve hala elle windows üzerinde onları svn-güncellemek zorundayız) Ve winscp kullanarak ve linux meslektaşları ile dizinleri senkronize kullanarak dosyaların manuel olarak güncellenmesi.

Sorum şu, bu dağıtım senaryosu otomatik hale getirmek önerirsiniz hangi araçları/kurulumu:

(ps "karışık pencereler/linux makineleri 2+ dağıtma Çeşitli php pencere/linux geliştiricileri": Elimizdeki linux araçlarını ya da Cygwin ile çalışan herhangi bir problemi kullanmamanız, basit bir tek adımlı işlemi yapabilmemiz yeterlidir.

düzenleme: Şu anda bir all-linux ortamında çalışamayız, ikisine de dağıtmak zorundayız. linux ve windows sunucusu. Dağıtımı herhangi bir yerden başlatabiliriz, ancak bunu her iki çevreden de yapabilmeyi tercih ederiz.

cevap

4

:) hatta gibi may bilir:

  1. Capistrano'nun ve benzeri araçlar (etkili fakat kompleks) Windows + 'dan
  2. rsync, Linux Mac
  3. On-sunucuya komut (karmaşık, tarayıcı üzerinden çalıştırmak)
  4. (zorlamaz, basit disiplin) Windows, Linux, Mac için + dan
  5. svn (basit, disiplin uygulamak değildir)

    • ne kadar disiplin size veritabanı (veya yapılandırma) gerekiyorsa
    • uygulamak istediğiniz (yukarı ve/veya aşağı) göçler
    • :

neye ihtiyacınız sürücü bazı gereksinimler vardır statik istiyorsanız güncelleştirme sunucuları arasında

  • Yapılandırma farklılıkları yapabileceği sayfa
  • "biz indik"
  • Kendinizi kurtarmak için yeterli disiplini uygulamanızı öneririm: bir geliştirme sunucusuna dağıtın, yukarı doğru geçişlere ve basit bir veritabanı geri yüklemesine izin verin ve canlı sunucuyu kimlerin az sayıda sorumlu yöneticiye güncelleyebileceğini sınırlayın (dev sunucusunun nerede olduğu) daha geliştiricilere açıktır). Ayrıca bir cron işi aracılığıyla (geliştirme sunucusuna) itmeyi düşünün, böylece artan değişikliklerin günlük bir görüntüsü var.

    Çoğu zaman, özellikle yönetici kümesi birkaç geliştiriciyle sınırlı olduğunda, birkaç sunucu tarafı komut dosyası ile svn veya rsync kurulumlarının yeterli olduğunu buldum.

    0

    Capistrano, gördüğüm en güzel dağıtım aracıdır. Mimari değişiklikler, yapılandırmaları düzeltmeyi imkansız hale getiriyor, böylece tekrar çalışıyor mu?

    1

    Bu muhtemelen sonunda karar verene kadar hep Linux üzerinde dağıtma olursam, gerçekten en az denemek etmesi gerektiği düşünülürse ben her zaman bu tür sorunların olması için kullanılan ... aptalca ama olacak Linux'ta da gelişiyor. Yaptım. Ağrısızdı. Asla geri dönmedim.

    Şimdi. Bunun herkes için olduğunu önermiyorum. Ancak, VirtualBox'u yüklerseniz, Windows kutunuzda bir Linux sunucusunu yerel sunucu olarak çalıştırabilirsiniz. Sanal makinedeki bir klasörü paylaşın ve tüm bilinen ve güvenilen Windows yazılımlarınızı ve tekniklerinizi ve herşeyin hedef platformda iyi çalıştığını bilmenin aklına gelebilir.

    Artı Dağıtım için Capistrano'ya (iyi bir seçim) geri dönebileceksiniz.

    Linux/Unix'in masaüstünüzde her gün kullanana kadar beklediğini biliyor olsaydınız en iyisi!Kim ben istemci ortamına bağlı 4 farklı yaklaşımlar kullanmak

    0

    Neden Capistrano'yu artık kullanamazsınız?

    Neden svn-update'i beğenmediniz?

    Uygulamanızda hangi özellikler özel bir dağıtım gerektiriyor?

    0

    kurabilirsiniz yapılandırma dosyaları üzerinde svn:ignore mülkiyet, onları silmek ve sonra Subversion deposu içinde .svn dosyaların kurtulmak için svn export /target/path/ kullanmaz svn update böylece.