[解決済み] phpのデプロイメント戦略について教えてください。[クローズド]
2022-04-26 11:58:27
質問内容
私はPHPで新しいプロジェクトを始めているのですが、他の開発者からPHPのデプロイメントに関する好ましい戦略についてフィードバックを得たいと考えています。一度変更をコミットしたら、開発サーバーや本番サーバーに素早く移行できるように、少し自動化したいと思っています。
CapistranoとRubyを使ったデプロイの経験があり、基本的なシェルスクリプトの使用もできます。
私が自分のプロジェクトに真っ先に飛び込む前に、他の人がどのようにアプローチしているのかを聞いておくといいと思います。
その他の情報
現在、開発者はローカルにインストールされたサイトで作業し、subversion リポジトリに変更をコミットしています。最初のデプロイは、svn からタグ付けされたリリースをエクスポートし、それをサーバーにアップロードすることで行われます。
追加変更は、通常、変更したファイルを手動でアップロードすることによって、断片的に行われます。
解決方法は?
PHPの場合、SVNに Phing ビルドスクリプトが最適です。Phingは、以下のものに似ています。 ANT が、PHPで書かれているため、PHP開発者が自分たちのニーズに合わせて変更するのがずっと簡単です。
デプロイメントのルーチンは以下の通りです。
- 全員が職場の同じローカルサーバーで開発し、開発者全員が自宅のマシンにもチェックアウトを持っています。
- コミットすると、ポストコミットフックが起動し、ステージングサーバーが更新されます。
- テストはステージングサーバで実行され、合格したら - 続行されます。
- Phingのビルドスクリプトが実行されます。
- 本番サーバーを停止し、ドメインを "工事中" ページに切り替えます。
- 本番環境のチェックアウトでSVNアップデートを実行
- スキーマ差分スクリプトの実行
- テストの実行
- テストが失敗した場合 - ロールバックスクリプトを実行
- テストに合格した場合、サーバーは本番環境のチェックアウトに戻ります。
また phpUnderControl これは継続的インテグレーションサーバーです。正直なところ、Webプロジェクトではあまり役に立たないと思いました。
関連
-
[解決済み] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given [重複] PHP & MySQL: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given.
-
[解決済み] php5パッケージのインストール候補がない (Ubuntu 16.04)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] PHPのエラーを表示させるにはどうしたらいいですか?
-
[解決済み] PHPのstartWith()関数とendsWith()関数
-
[解決済み] PHPのstdClassとは何ですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み】メンバ関数をnullで呼び出す?
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】 $_SERVER['DOCUMENT_ROOT'] と $_SERVER['HTTP_HOST'] の違いについて]
-
thinkphp5 timestamp 非整形の数値に遭遇した。
-
[解決済み】Wordpressの子テーマのstyle.cssが効かない。
-
[解決済み] libapache2-mod-php7 パッケージの場所がわからない
-
[解決済み] Gitプッシュでプロジェクトをデプロイする