FTP を使用して Web サイトをアップロードすることは現在 n00bs 用であると聞いていますが、Web サイトを構築してきた 8 年ほどの間、私が知っている唯一の方法です。どうやら今話題になっているのは、SVN や Git などのバージョン管理システムを使用し、何らかの方法で SSH を使用して、変更されたファイルのみをアップロードすることです (私の理解が正しければ)。誰かが説明したり、「包括的な」ガイドを教えてくれたりできないかと思っています。何をインストールする必要がありますか?共有ホスト (Dreamhost) は互換性がありますか? 私は現在、WAMP環境で開発しています。私はバージョン管理を使用したことがなく、どこから始めればよいかわかりません。私は通常、CakePHP や Zend などのフレームワークで開発しています。
10 に答える
あなたは物事が少し混ざっています。バージョン管理システムは、開発中にコードを追跡するために内部で使用されます。SVN のような集中型システムでは、コードを定期的に SVN サーバーにアップロードします。SVN サーバーは変更内容を追跡し、競合する変更が正しくマージされていることを確認し、変更をロールバックできるように履歴を保持します。
分散型または分散型のバージョン管理システムは、1 つの中央サーバーを排除し、代わりにコードのすべてのコピーが独自の変更履歴を追跡できるようにし、これらの個別のブランチを自由にマージおよび結合できるようにします。
しかし、製品が完成したら、好きな方法で本番サーバーにプッシュします。FTP は確かにそれを行うための 1 つのオプションです。
ファイルのアップロードの場合、探しているのはrsyncです。これにはDeltaCopyと呼ばれる Windows ラッパーがあり、DreamHost wiki には説明があります。
最初に、バージョン管理に何を使用するかを決定する必要があります。Git について素晴らしいことを耳にしますが、私自身はまだ SVN ユーザーです。
Dreamhost では、実際に Web パネルを使用して SVN リポジトリを作成できます。非常に熱心で、覚えていませんが、役立つ本当に優れた機能が追加されていると思いました。
せいぜい読んだり、ざっと目を通したりすることをお勧めします: http://www.svnbook.org実際に Git で SVN を使用する予定がある場合は、非常に包括的です。
誰もがポイントを完全に見逃しています。バージョン管理システムを使用した開発は素晴らしいことであり、自分で作業している開発者にとっても大きなメリットがあります。ここでの質問は、バージョン管理システムを使用した展開についてです。
これは新しくて素晴らしいアイデアです。ベース インストールに 6,744 個のファイルがあるMagentoのようなものを考えてみてください。通常は約 500 個のファイルに実行される独自のスキンをいつ追加するかについては言及しません。バージョン管理を使用してこのようなものをデプロイすると、変更されたファイルのみが送信されるため、FTP 経由でこの多くの小さなファイルをアップロードする時間を大幅に節約できます。
これとは別に、私は実際にこのような展開を試みたことがないので、実際の経験を提供することはできませんが、このセットアップを取得する方法に関するいくつかの優れた記事があり、良い記事はここで見ることができます.
ソース管理に関する Eric Sink の記事は、基本的な概念を学ぶのに最適な場所です。
Subversion を Dreamhost に追加するために必要なすべての情報を提供する wiki を次に示します。
http://wiki.dreamhost.com/index.php/Subversion
現在、自分のサイトで Subversion を使用しています。私は自分の Windows マシンで Aptana を使用し、そのプログラムを通じてすべてをアップロードしています。これにより、古いバージョンを比較したり、元に戻したり、新しいバージョンから分岐したりできます...
時間の大幅な節約になります。
他の人が言ったように、バージョン管理をローカルで設定することも、ホスト上で設定することもできます。あなたにとって最善の方法で行うことをお勧めします。
あなたはDreamhostの使用について言及しています。私はそこで 1 つの小さなサイトをサポートしており、それらがscpおよびsftp経由でのアップロードを許可していることを知っています。これにより、パスワードを暗号化してファイルをアップロードできます。(そして、したくない場合は、バージョン管理方法を採用する必要はありません! ;-) リンク先の sftp ページを下にスクロールすると、scp および sftp クライアントに関するいくつかの提案が見つかります。
FWIW、Windows を使用している場合、私はWinSCPを何年も使用しており、気に入っています。また、完全なログイン アクセスが必要な場合は、PuTTYをお勧めします。その完全なダウンロードには、sftp および scp 用のコマンド ライン ベースのクライアントも含まれています。
また、Zend Framework を使用して開発しています。FTP とバージョン管理を使用する方法は次のとおりです。
私のローカル マシンには、Subversion と TortoiseSVN がインストールされています。
新しいプロジェクトを開始する場合は、好きなようにSVN リポジトリをセットアップします(トランク/ブランチ/タグ システムを使用します)。
最初の作業コピーをトランクからローカル Web ルートのプロジェクト フォルダーにチェックアウトします。
Aptana で新しいプロジェクトを作成し、プロジェクト パスをローカルホストのプロジェクト フォルダーに設定します。
Aptana は、このプロジェクトがバージョン管理されていることを理解し、各ファイルに適切なアイコンを表示します。バージョン管理機能の多くは、Aptana のファイル ツリーで直接実行できます。シェルや Tortoise は必要ありません。
アプリの安定したデプロイ可能なバージョンができたら、バージョン管理タグを作成します。次に、それをエクスポートします(バージョンを解除します)。
エクスポートされたアプリは、FTP 経由でアップロードされます。
とにかく、それは私が現時点でそれを行う方法です。多分それは何かを明確にします。手順を改善するためのヒントは大歓迎です!
bzr-uploadと呼ばれる bzr 用の素晴らしいプラグインがあり、まさにあなたの種類のユースケース向けに設計されています。bzr は非常に軽量で (リポジトリをセットアップする必要はありません)、ソース管理をまったく使用したことがない場合でも、非常に簡単に使い始めることができます。これは bzr のプラグインであり、ローカル マシンでコミットを行うたびに、変更されたファイルを Web ホストに s/ftp します。すべてのバージョン管理情報をプッシュするわけではなく、ファイル自体だけをプッシュします。
ftp を使用してアップロードしても問題ありません。唯一の欠点は、パスワードがプレーン テキストとして転送されることです。
バージョン間の変更を簡単に確認したり、古いバージョンにすばやく戻したりできるローカル バージョン管理システムがあるとよいでしょう。
共有ホストにバージョン管理システムをインストールする必要はないと思います。さまざまな場所 (自宅、職場、旅行中) からバージョン管理システムにアクセスする場合にのみ便利です。