2009-08-13 3 views
10

私はPHPUnderControlを使用しています。これは私の継続的な統合とユニットテストのためにクルーズコントロールの上を走ります。私はphpdocを生成するためにPHPDocumentorを実行するようにセットアップしてあり、PHPコードスニファを実行して私のために標準をコーディングします。しかし今、私は同じサーバー(Ubuntu)に何かをセットアップして、リモートサーバーへの展開を容易にしたいと思っています。私はすでにSVNエクスポートが成功するたびに、トランクからサーバー上のプロジェクトフォルダ内のディレクトリにビルドされているので、それをセットアップしています。PHPビルドシステム

設定されたリモートサーバーにSSHし、最新のエクスポートをビルドし、コピーし、untarして移行を実行する、少しカスタムのPHPスクリプトを作成しようと考えていました。このようなPHPスクリプトは、最終的に複数のサーバーにスケーリングを開始する必要がある場合を除き、当初はあまり難しくありません。そこにはPhing,Fabricなどのシステムがあることは知っています。

私の質問は、誰もこれらの経験があり、プロと詐欺を提供できるかどうかです。私は自分のサーバ上でPhingをセットアップし始め、Fabricと一緒に試してみようとしていますが、それらをもっと広範囲に使用したり、拡張しなければならなかった人がフィードバックを提供できるかどうかは不思議でした。

答えて

8

私はPHPでCapistranoを使っています(これはRubyで書かれているように、Rails-yのものですが)。

使用するのは本当に簡単でしたが、それは私がそれを使って大規模にする必要はないと言いました。ただし、さまざまなステージング/プロダクションサーバーに展開しています。これらのシナリオでは、マルチステージ拡張が役立っています。

しかし、Rubyのように、カピストラノを初めて使っていて、何か面倒なことをしようとすると、混乱を招く可能性がある多くのフックと「魔法」があります。

他のデプロイメントツールとの比較は、私はコメントできません。私はPhingの使用に慣れていたことは知っていますが、私がCapistranoに切り替えた理由は不明です。

+0

私はカピストラーノが好きです。 +1 –

0

私がこのようなデプロイメントシステムを実装する場合は、上記で概説したものとは多少異なる解決策を選択するでしょう。私のシステムでローカルに実行されるコードを持つ代わりに、リモートサーバーのリストに接続してそこで「作業」を行うと、残りのコードがアップデータモジュールにパックされ、オンデマンドでサーバーから更新データを取得します(あるいは私が「そうするように言った」とき)。そうすれば、最終的には心配する必要がなくなります(要求されたときにHTTP経由で更新されたコードを提供し、リモートサーバーが残りの部分を処理するだけです)。ちょうど私の2セント。

1

私たちはphingを使用しており、便利です。私たちはパッケージングには使用しませんが、あなたが探していることをするのは難しくありません。主に、キャッシュのクリア、開発サイトの構築、開発に役立つその他のタスクなどの一般的なタスクに使用します。それは大きな助けとなり、私が集めることができるから、それはアリが持っているすべての機能を持っていないかもしれませんが、それは蟻のクローンであるようです。

0

私は3番目の世界的なcontryで非常に悪いインターネット接続から作業し、rsyncが動作しないようにすべての種類の失敗と飢えた接続を持っているので、私は自分のrsyncのようなツールを書いた。

リモートシステムでは、少なくともマイグレーションを実行する前にバックアップを行っているlitteスクリプトを作成する必要があります。

あなたのWebホストシステムでは、独立したミラーシステムを使用していて、マイグレーション後には小さいが基本的な単体テストが含まれていますか?次に、更新されたWebサイトをオンラインにするためにルートを切り替えます。これは、移行中に読み取り専用モードでいくつかの対話型サービスを実行する必要があります(残念ながら、多くの人が実装していない機能)。

しかしまず第一に、これを実行するのに本当に時間がかかるのであれば、四半期ごとに更新するだけであれば、簡単なチェックリストで十分でしょう。

2

あなたがCapistranoを好きだが、もう少しPHPが欲しいと思ったら、Fredistranoをチェックしてください。

私は、自動ビルド(SVNエクスポート、Zend Guardエンコーディングなど)と、Phingを使用したデプロイメントシステムを作成しました。私が特別な仕事を書かなければならなかったときはいつでも、私はそれを働かせるために多くのフープに飛び抜けなければならないと感じました。

最近では、SVNチェックアウト、コード化、SVNでのタグの作成、rsyncによるデプロイメントを使って構築する単純なbashスクリプトを書いています。それはローテクであるかもしれません、そして、Phingはいくつかの優れた機能を持つかもしれませんが、少なくともそれは私の方法では得られません。

2

TheresはBldrという新しいビルドツールです。ほとんどのビルドシステムのようにxmlの代わりにconfigのためにYamlを使い、その拡張性は非常に高いです。

http://bldr.io