5

ここでアプリケーションのデプロイについて多くのことを読みましたが、私たちのニーズに対する適切な答えをまだ見つけていません。

リモートサーバーにデプロイしたい zend フレームワークで構築された大規模な Web アプリケーションがあります。アプリケーションの新しいバージョンを本番サーバーに簡単かつ安全にデプロイできるようにしたいと考えています。

実行する必要があるのは次のとおりです。

  • 本番アプリケーションにメンテナンス ページを配置しますか?
  • SVN からバージョンをエクスポート
  • シェル スクリプトを実行して、特定のディレクトリ内の CSS ファイルを縮小します (シェル スクリプトが実行されます)。
  • ファイルとディレクトリにファイル権限を設定する
  • コピー/同期? 本番サーバーへのファイル -> 変更されたファイルのみ?
  • 本番アプリケーションからメンテナンス ページを削除しますか?

コードのバージョン管理ツールとして SVN を使用し、本番環境ではサーバー OS として CentOS を実行しています。

私は読んだことがあります:

  • rsync
  • フレディストラーノ / カピストラーノ
  • フィング
  • カスタム シェル スクリプト

ワンクリックで簡単に展開するためのアドバイスはありますか?

4

2 に答える 2

3

サイトのコピーを別の名前 (通常は Subversion のリビジョン番号と日付) でエクスポート (またはチェックアウト) し、ドキュメント ルートを所定の場所にシンボリック リンクします。

1000.20100515/
   application/
   public/
   library/
1020.20100621/
current (symlink to 1000.20100515/)
dev (symlink to 1020.20100621/)

# copy whatever 'dev' points to as the new 'current' symlink.
rm current && cp -d dev current

ドキュメントルートはApacheで../current/publicに設定されています

これにより、暇なときにサイトの新しいバージョンをチェックアウトし、新しいバージョンを一瞬のうちに公開することができます。サイトの以前のバージョンへのロールバックは、シンボリック リンクを変更するのと同じくらい簡単です。大きな問題が見つかった場合です。

追加され た ruby​​ ベースのツール ' Capistrano ' は、多数のマシン (1 台でも 12 台でも) でこれを完全に自動化するための優れた方法であり、実際、現在はこれが私の好ましい展開方法です。 Capifonyは、 Composerベースのプロジェクトもサポートする Capistrano のプラグインです。

于 2010-06-29T20:59:05.527 に答える
0

カピストラーノを試してみてください。これは Ruby 用に開発されており、コンピューターに Ruby をインストールする必要がありますが、ターゲット サーバーにインストールする必要はありません。

git または svn で動作し、ターゲット サーバーにバージョンを作成します。1 行の CMD で新しいバージョンをロールバックしてデプロイできます。

このチュートリアルを見つけました: http://tfountain.co.uk/blog/2009/5/11/zend-framework-capistrano-deployment

カピストラーノの修正版と別のチュートリアルがここにあります: http://www.codewithstyle.eu/2011/05/03/deploying-zend-framework-applications-using-capistrano/

于 2011-05-27T13:27:51.600 に答える