最初の部分では、最も基本的なこと-開発環境(プロジェクトへの共同アクセスをどのように編成したか)について説明します。
アイデア
- 開発環境はすべてのサイトで同じでなければなりません。
- 開発者は、各サーバーパーツのセットアップに時間を浪費しないでください。
- 1人または複数の人がプロジェクトに取り組んでいるかどうかにかかわらず、バージョン管理が必要です。
- 作業ディレクトリ(IDEワークスペース)がサーバー上にある場合、自宅のデスクトップまたはラップトップで環境を再構成する時間を無駄にすることなく、自宅で作業できます。
コンセプト
このコンセプトの基本は、すべてのプロジェクトが単一のサーバーで開発されることです。 利点は明らかです:
1.従業員のマシンの多数の設定を取り除きます
サーバー上ですべてが既に設定されているため、システム管理者は各コンピューターへのアクセスを提供するために内部ネットワークの設定に時間を費やす必要はありませんが、一方で、開発者自身はリモートで作業する必要がある場合に設定の時間を節約します。
2.統合サーバーソフトウェアの構成
多くのプロジェクトには、特定のサーバーソフトウェア要件があります。 サーバーでの開発中にこれらの要件がすぐに設定されると、テスト段階および本番環境への移植の時間を大幅に節約できます。 プログラマーのコンピューター上のソフトウェアバージョンを動作中のサーバーと同期する必要はありません(たとえば、Apache、PCPなどを更新する場合)
3.各従業員の作業コピーへの共有アクセス
現在1人がワークスペースで開発しているもので、他の人はすぐにWebから見ることができます。 バージョン管理システムのリポジトリからの最新の一般バージョン。
4.リソースの節約
雇用主は通常のコンピューターでお金をspareしまなかったので、私たちは友人から貧しい生活についての話をよく耳にします。 このような状況では、リソースを節約することは非常に役立ちます。Webサーバーとインタープリターの機能はローカルマシンから削除されます。
この概念の欠点は、ネットワークの速度と信頼性の要件、および各プロジェクトの個々のソフトウェア設定の柔軟性の欠如です。 私たちの場合、長所は短所を大幅に超えています:)
アクセス
開発中のすべてのコードがサーバーで解釈される場合、それへの便利なアクセスを整理する方法は?
表示。
自宅のスタジオ内で、次のスキームを選択しました。
username.project.example.com/trunk
このアドレスでは、開発者自身とすべてのチームメンバーが互いのベストプラクティスにアクセスできます。 バージョン管理では、SVN( 不安定なトランクスキーム、安定したブランチ )を使用して、各プロジェクトのリポジトリをそれぞれ作成し、目的のブランチに進み、そのパス(/トランク; /ブランチ)を示します。
編集中
開発者にとって最も便利なのは、プロジェクトファイルをOSファイルシステムから分離せずに表示することです。 したがって、各開発者は、プロジェクトでの作業を開始するために、サーバー上のディレクトリをローカルマシンにマウントするだけです。
実装
奇妙なことに、実装によって、すべてが非常に簡単になります。
バインド
当然、username.project.example.comのようなドメインを取得する場合は、ゾーンファイルに次の行を追加する必要があります。
*.example.com. IN A 208.77.188.166
* .example.comマスクに一致するすべてのサブドメインは、Webサーバーにアドレス指定されます。
アパッチ
ここで、ドメインを処理し、目的のディレクトリにアドレス指定するようにWebサーバーに教える必要があります。 開発者用のサーバー上の作業ディレクトリは次のとおりです。/var/www/username.example.com/project/trunk/htdocs/
たぶん、/ home / username /にすべてを保存する方が正しいでしょう。
仮想ホストを構成します。
<VirtualHost *:80>
ServerAlias *.*.example.com
ServerPath /var/www/
DocumentRoot /var/www/
RewriteEngine On
RewriteCond %{http_host} ^([^.]+)\.([^.]+)\.example\.com [NC]
RewriteRule ^/(trunk|branches|tags)\/?(.*)$ /%1.example.com/%2/$1/htdocs/$2
</VirtualHost>
作業ディレクトリのマウント
ローカル開発者のマシンはさまざまなOSで動作でき、それぞれの設定は異なる場合があります。
Linux
sshプロトコル(サーバーがLinuxまたはUNIXのクライアントと同じ場合)はネイティブであるため、サーバー上に各ユーザーの開発者を作成する場合、ディレクトリは1つのコマンドでマウントされます。
sshfs -o workaround=rename username@example.com:/var/www/username.example.com/ /home/username/username.example.com/
パラメーターworkaround = renameは、svnで正しく動作するために必要です。
窓
ここでは、いつものように、すべてがやや複雑です。追加のソフトウェアを使用する必要があります。ExpanDriveを選択しました 。このプログラムでは、sshでディレクトリをマウントできます。
サーバー上でSambaを使用して追加のソフトウェアの使用を放棄することは論理的ですが、残念ながら、sambaとSambaの友達を作ろうとする試みは失敗しました.svnからマウントされたディレクトリへのチェックアウトは機能しません。 現在、状況は変わっているかもしれませんが、1年前にsvnとの互換性に関するsambaバグトラッカーのチケットが公開されました。
ポピー
sshを使用できる2つのオプションがあります。ディレクトリをマウントするには、 Macfusionアプリケーションが適しています。 ネイティブAppleTalkを使用してから、Finderを使用してディレクトリをマウントできます。
AppleTalkサポートは、 netatalkパッケージをインストールすることで手配できます。 設定するには、/ etc / netatalk / AppleVolumes.defaultファイルに次の行を追加する必要があります。
/var/www/username.example.com/ username.example.com allow:username cnidscheme:cdb options:usedots,upriv,noadouble
Finderで⌘+ Kを押すと、アドレスフィールドにafpと入力できます://username@example.com/username.example.com
おわりに
この概念は、ほとんどの小規模スタジオの開発環境の基盤として適しています。 同時に、非常に柔軟性があり、たとえば1つのプロジェクトまたは新しい開発者を追加するだけで拡張できます。対応するディレクトリを作成し、ユーザーをシステムに追加するだけで十分です。