
私はランプ アプリケーションに取り組んでいます。ライブ サーバー (Debian) と開発サーバー (Dev) の 2 台があります。
私は常に開発メインで新しい機能を追加し、バグを修正しています。
すべてがうまく機能したら、関連するコードをライブ システムに scp します。データベース (mysql) は各マシンにローカルです。
これは実際にはかなり基本的な設定ですが、ワークフローを少し改善したいと思います。バージョン管理には git と github を使用しています。確かに、実際に使用したブランチは 1 つだけです。異なる時間にコードに取り組む開発者は 3 人いる場合があります。全員が同じ Linux ユーザー名を使用して開発サーバーに接続し、必要に応じてコードを直接編集します。その後、通常は 1 日の終わりにコードをコミットして github にプッシュします。
留意すべき点の 1 つは、ローカル マシンでは動作しない Apache およびサブドメイン構成が多数あるため、このコードをローカル マシンで実行するのは簡単ではないということです。そのため、ローカルではなく開発サーバー上で作業することが重要です。
メイン トランクと、大規模なコード書き換えを伴うブランチが必要なので、新しいプロセスを作成する必要があります。
これを行う最善の方法は何ですか。開発者ごとに異なる UNIX ログインを作成し、開発サーバー上に変更用の異なる作業領域を設定する必要がありますか? 例:
/var/www/mysite_derek /var/www/mysite_paul /var/www/mysite_mike
私の考えでは、メイン ブランチからプルして、独自のブランチを作成し、それをマージすることができます。ただし、ローカルの Git と Github でこれがどのように機能するかはわかりません。
別の github ユーザー アカウントも作成する必要がありますか。
私はこれを「正しい」方法で実行し、多くの潜在的な開発者が将来的に利用できるようにしたいと考えていますが、複雑にしすぎることも望んでいません。シンプルでエレガントなソリューションが望ましいです。
何か推奨事項や提案はありますか?
答え1
約 12 人の開発者で使用しているソリューションは次のとおりです。これは非常にうまく機能し、サーバーの設定を変更する必要なく柔軟なセットアップを実現します。ネットワークの遅延とサーバー ストレージの速度のため、40 ~ 50 人の開発者には拡張できない可能性があります。
私たちは共有します/var/www/Samba 経由でツリーにアクセスできるようになり、Windows クライアントはローカル IDE と VCS クライアントを使用して LAMP サーバー上で編集できるようになります。Linux サーバーにはアカウントを持つユーザーはいません。
次のようにディレクトリ構造を作成します。
/var/www/mysite.com/www/derek/
/var/www/mysite.com/www/paul/
/var/www/mysite.com/www/mike/
内部DNSで、**.dev*をランプサーバーのIPアドレスにポイントするワイルドカードレコードを作成します。123.45.67.89ここ。
Apache では、次のような仮想ホストを定義します。
<VirtualHost 123.45.67.89>
ServerName lamp.dev
ServerAlias *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/%-4/%1/
</VirtualHost>
重要な部分は ServerAlias ワイルドカードで、これによりこの仮想ホストは '.dev' で終わるすべての受信リクエストに応答します。もう 1 つの重要な部分は VirtualDocumentRoot で、これは複雑に見えますが、それほど難しくはありません。これは単に受信ホスト名を複数の部分に分割し、その部分から DocumentRoot を構築するだけです。詳細はこちら。
今ならどの開発者も訪問できるhttp://derek.www.mysite.com.dev/そして、mysite の個人用作業コピーを表示します。
新しいサイト、サブドメイン、または開発者を追加するには、Samba 共有に適切なディレクトリを作成するだけです。
本番サーバーにデプロイする場合は、scpを捨てて、カピストラノ、そして優れた集中型ウェブフロントエンドウェビストラノCapistrano は Rails 中心ですが、たとえば PHP に適応するには数行しかかかりません。Webistrano は、ボタンを押すだけでバージョン管理から直接サイトを展開または更新できる中央 GUI を提供します。簡単にスクリプト化された展開は、確実に繰り返し実行でき、問題が発生した場合にはロールバックできるため、無視すべきではありません。