PHP Yapı sistemi [kapalı]

6 Cevap php

I PHPUnderControl ki benim sürekli entegrasyon ve birim test için Cruise Control üstünde çalışır kullanıyorum. Ben de o benim için phpdoc en üretmek için phpDocumentor çalıştırmak için kurulum var ve bu benim için kodlama standartları uygulamak için PHP kodu Sniffer çalışır. Ama şimdi daha kolay bir uzak sunucuya dağıtma yapmak için aynı sunucu (Ubuntu) bir şey kurmak istiyorum. Her başarılı yapı sonra SVN Export sunucusunda projeler klasör içinde bir dizine gövde yapılır ben zaten o kurulum var.

Ben Tar, bunu üzerine kopyalamak, son ihracat yukarı tarballarını, yapılandırılmış bir uzak sunucuya SSH ve herhangi göçler çalışacak biraz özel bir PHP komut dosyası yazma düşünüyordum. Sonunda birden çok sunucuya tırmanışa başlamak için gerekli olmadıkça böyle bir PHP komut dosyası, başlangıçta çok zor olmamalı. Ben sistemleri var Phing, Fabric ve diğerleri gibi olduğunu biliyorum.

Herkes bu herhangi bir deneyime sahiptir ve bazı yanlısı ve con sağlayabilir eğer benim soru? Benim sunucuda Phing kurmak başladı ettik ve onlarla oynamak yanında Kumaş çalışıyor olacak, ama daha yoğun olarak kullanılmış, ya da onları büyütmek zorunda olan herkes, bazı geribildirim sağlayabilir merak ediyorum.

6 Cevap

I Capistrano PHP (o Ruby ile yazılmış gibi bir Rails-y bir şey daha olsa bile) ile kullandım.

Kullanımı gerçekten çok kolay geçti, ama ben onunla çok ölçekli olmadı söyleniyor. Biz de farklı farklı hazırlama / üretim sunuculara dağıtmak, ve çok aşamalı uzantısı bu senaryolarda yararlı olmuştur.

Ancak çoğu şey Ruby gibi, bir kanca ve size bir sürü Capistrano'ya yeni ve onunla zor bir şey yapmaya çalışıyor iseniz kafa karıştırıcı olabilir "sihirli" var.

Diğer dağıtım araçları karşılaştırır nasıl gelince, ben yorum yapamam. Sanırım Phing kullanmak için kullanılır biliyorum, ama biz Capistrano'ya açık neden belirsiz değilim.

Capistrano gibi, ama biraz daha PHP'ish diledi ise, check out Fredistrano.

Bir keresinde Phing kullanarak bir otomatik yapı (SVN ihracat, Zend Guard kodlama, vb) ve dağıtım sistemi yazdı ve kullanımı oldukça acı bulundu. Ben özel bir görevi yazmak zorunda kaldım zaman keşke sadece işe almak için birçok basketbol için yol üzerinden atlamak zorunda hissettim.

Yani, bu gün ben sadece rsync yoluyla SVN ve dağıtımında bir etiketi oluşturma, SVN çıkış, kodlama ile bina yok basit bir bash komut dosyaları yazabilirsiniz. Bu düşük teknolojili olabilir ve Phing bazı üstün özelliklere sahip olabilir, ama en az benim şekilde almaz.

Biz Phing kullanmak ve kullanışlı geldi. Biz ambalaj için kullanmak istemiyorum, ama o aradığınız ne yapmak çok zor olmamalı. Biz esas olarak temizleyerek önbelleklerini, imar siteleri ve kalkınma yardımcısı için diğer görevler gibi ortak görevler için kullanabilirsiniz. Onun büyük bir yardım olmuştur ve karınca sahip olduğu tüm özelliğe sahip olmayabilir, ancak ben toplayabilir ne o, bir karınca klon gibi görünüyor.

Ben böyle bir dağıtım sistemi uygulamak olsaydı, ben muhtemelen yukarıda özetlenen kadarıyla biraz farklı bir çözüm için tercih olacaktır. Bunun yerine uzaktan sunucuların listesi bağlanır ve orada "iş" yapar, benim sistemde yerel olarak çalışır kod sahip, ben kod kalanı ile güncelleme modülü paketi ve bu talep üzerine benim sunucudan güncelleme veri çekme olurdu (ya da daha doğrusu ben bunu yapmak için "dedi" ne zaman). Eğer sonunda endişelenecek çok daha az olması yol (sadece istendiğinde http aracılığıyla güncelleştirilmiş kod hizmet etmek gerekir, ve uzaktan sunucu kalan işler). Sadece benim 2 sent.

I bir 3. dünya memleketin çok kötü bir internet bağlantısı çalışmak ve rsync çalışmıyor böylece hataları ve açlıktan bağlantılarının her türlü var, çünkü ben bunun için bir araç gibi kendi rsync'i yazdım.

Uzak sistem üzerinde en az göçler çalıştırmadan önce yedekleme yapıyor litte senaryo yazmak gerekir.

Iyi web host sistem üzerinde bir toplam bağımsız ayna sistemi kullanıyorsanız ve bir geçişten sonra bazı küçük ama temel birim testleri içerir olmasıdır. Sonra online güncellenen web sitesine koymak için bir kök geçiş yapmak. Bu göç (birçok kişi uygulamak ne yazık ki bir özelliktir) sırasında salt okunur modda birkaç interaktif hizmetleri çalıştırmak için gerektirir.

Ama önce tüm - gerçekten zaman bu yapmaya değer olup olmadığını düşünmek - sadece her dörtte güncellemek eğer kağıt üzerinde basit bir kontrol listesi yeterli olacaktır.

Bldr adında yeni bir inşa aracı, gidecekseniz. Bunun yerine orada yapı sistemlerinin çoğu gibi xml config için YAML kullanır ve son derece genişletilebilir.

http://bldr.io