1. ホーム
  2. php

[解決済み] phpのデプロイメント戦略について教えてください。[クローズド]

2022-04-26 11:58:27

質問内容

私はPHPで新しいプロジェクトを始めているのですが、他の開発者からPHPのデプロイメントに関する好ましい戦略についてフィードバックを得たいと考えています。一度変更をコミットしたら、開発サーバーや本番サーバーに素早く移行できるように、少し自動化したいと思っています。

CapistranoとRubyを使ったデプロイの経験があり、基本的なシェルスクリプトの使用もできます。

私が自分のプロジェクトに真っ先に飛び込む前に、他の人がどのようにアプローチしているのかを聞いておくといいと思います。

その他の情報

現在、開発者はローカルにインストールされたサイトで作業し、subversion リポジトリに変更をコミットしています。最初のデプロイは、svn からタグ付けされたリリースをエクスポートし、それをサーバーにアップロードすることで行われます。

追加変更は、通常、変更したファイルを手動でアップロードすることによって、断片的に行われます。

解決方法は?

PHPの場合、SVNに Phing ビルドスクリプトが最適です。Phingは、以下のものに似ています。 ANT が、PHPで書かれているため、PHP開発者が自分たちのニーズに合わせて変更するのがずっと簡単です。

デプロイメントのルーチンは以下の通りです。

  • 全員が職場の同じローカルサーバーで開発し、開発者全員が自宅のマシンにもチェックアウトを持っています。
  • コミットすると、ポストコミットフックが起動し、ステージングサーバーが更新されます。
  • テストはステージングサーバで実行され、合格したら - 続行されます。
  • Phingのビルドスクリプトが実行されます。
  • 本番サーバーを停止し、ドメインを "工事中" ページに切り替えます。
  • 本番環境のチェックアウトでSVNアップデートを実行
  • スキーマ差分スクリプトの実行
  • テストの実行
  • テストが失敗した場合 - ロールバックスクリプトを実行
  • テストに合格した場合、サーバーは本番環境のチェックアウトに戻ります。

また phpUnderControl これは継続的インテグレーションサーバーです。正直なところ、Webプロジェクトではあまり役に立たないと思いました。