Subversion · 1 min read · Jan 01, 2026

完璧なSubversionサーバー - Debian Lenny [ISPConfig3]

完璧なSubversionサーバー - Debian Lenny [ISPConfig3]

Subversionは無料のオープンソースのバージョン管理システムです。つまり、Subversionはファイルやディレクトリ、そしてそれらに加えられた変更を時間の経過とともに管理します。これにより、データの古いバージョンを復元したり、データがどのように変化したかの履歴を調べたりすることができます。この点において、多くの人々はバージョン管理システムを「タイムマシン」の一種と考えています。このガイドは、Subversionシステムをセットアップし、既存のISPConfig3インストールと統合する手助けをし、ディスク使用量、クォータ、その他の要因を非常に馴染みのある方法で管理できるようにします。いつの日か、誰かがこのプロセスを使用して、これを自動的に行うISPConfig3用のプラグインを作成できるかもしれません。

要件

明らかに、このハウツーはすでにISPConfig3がセットアップされて稼働していることを前提としています。以下に示す手順はISPConfig2でも機能する可能性がありますが、テストされておらず、サポートされません。まだ行っていない場合は、続行する前にfalkoのガイド「完璧なサーバー - Debian Lenny [ISPConfig3]」に従ってください。

単一のウェブサイトに複数のリポジトリを持たせるために、すべてを’svn’フォルダーの下に配置します。最終的にリポジトリへの公開パスはhttp://example.com/svn/myrepoのようになります。しかし、始める前に、’example.com’のサイトを作成する必要があります。サイトを作成し、クォータオプションを設定することはこのハウツーの範囲外ですが、以前に行ったことがない場合でも比較的簡単です。

Subversionのインストール

Subversionと必要なApacheモジュールのインストールは比較的簡単です(rootとして実行するか、sudoを使用します):

apt-get install subversion libapache2-svn

リポジトリの作成

デフォルトでは、ISPConfigはサイトを/var/clients/clientx/weby/に保存します。リポジトリをセットアップしたいサイトに対応するクライアントID(x)とサイトID(y)を知っておく必要があります。デフォルトのパスに調整を加えた場合は、以下のコマンドをあなたのディレクトリ構造に合わせて修正する必要があります。まず、svnディレクトリを作成します(各サイトについて一度だけ行えばよいです):

mkdir /var/clients/clientx/weby/svn

次に、リポジトリを作成し、すべての権限を修正する必要があります(クォータチェックに重要です)。

svnadmin create /var/clients/clientx/weby/svn/myrepo  
chown -R weby:clientx /var/clients/clientx/weby/svn  
chmod -R 770 /var/clients/clientx/weby/svn

リポジトリの共有とセキュリティ

リポジトリへのアクセスを共有し保護するためにapacheを使用します。共有手順は常に同じですが、リポジトリを保護するための3つのオプションがあります。

  1. 公開リポジトリ - 公開リポジトリは、任意のユーザーがいつでも制限なしにファイルをダウンロード、閲覧(チェックアウト)、アップロード(コミット)できることを意味します。これは一般的に、コードの破壊行為につながる可能性があるため、リポジトリを展開する推奨方法ではありません。
  2. 共有リポジトリ - ‘共有’リポジトリは、誰でもコードをダウンロード、閲覧(チェックアウト)できますが、認可されたユーザーのみがリポジトリにコミットできます。これは、SourceforgeやGoogle Codeのようなサイトがデータを共有する方法に似た、リポジトリを保護する最も一般的な方法です。
  3. プライベートリポジトリ - プライベートリポジトリは、リポジトリに対する任意のアクションが認証されたユーザーを必要とし、コードが共有またはオープンソースであることを意図していない場合に便利です。

共有またはプライベートリポジトリのいずれかを選択した場合、’認可された’ユーザーのユーザー名とパスワードを保存するパスワードファイルを作成する必要があります(追加のユーザーを追加するには、コマンドから’-c’オプションを省略します)。

htpasswd -c /var/clients/clientx/weby/svn/myrepo.passwd [username1] <-- username1のパスワードを入力するように求められます

最後に、ユーザーがhttp://example.com/svn/myrepoをリクエストしたときにApacheに何をするかを指示する適切なディレクティブを追加する必要があります。使用したいセキュリティ方法に応じて、以下の適切なディレクティブをコピーして、ISPConfigのサイトの’オプション’タブの’Apacheディレクティブ’ボックスに貼り付けます(適切なxおよびyの値でディレクトリを修正するのを忘れないでください)。

公開リポジトリ

      
        DAV svn  
        SVNPath /var/clients/clientx/weby/svn/myrepo  
    

共有リポジトリ

      
        DAV svn  
        SVNPath /var/clients/clientx/weby/svn/myrepo  
        AuthType Basic  
        AuthUserFile /var/clients/clientx/weby/svn/myrepo.passwd  
          
            Require valid-user  
          
    

プライベートリポジトリ

      
        DAV svn  
        SVNPath /var/clients/clientx/weby/svn/myrepo  
        AuthType Basic  
        AuthName "Indemnity83 Scripts"  
        AuthUserFile /var/clients/clientx/weby/svn/myrepo.passwd  
        Require valid-user  
    

変更を加えた後、サイトが動作し始めるまでに少し時間がかかる場合がありますが、この時点で動作し、保護されたSubversionリポジトリを持っているはずです。さらに追加したい場合は、’リポジトリの作成’からすべてを繰り返してください。

ありがとう

このハウツーが役に立つことを願っています。コメントや修正を自由に追加してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。