📂

CentOSとApacheでSubversion(SVN)サーバーを構築する手順

に公開

はじめに

本記事では、CentOS環境にApache経由でアクセス可能なSubversion(SVN)リポジトリサーバーを構築する手順を、コマンドを中心に簡潔に解説します。mod_dav_svnを利用して、HTTP経由でのリポジトリ操作を可能にします。

前提環境

  • OS: CentOS 6/7
  • Webサーバ: Apache (httpd)
  • バージョン管理: Subversion

1. Subversionと関連モジュールのインストール

yumを利用して、Subversion本体とApache連携用のモジュールmod_dav_svnをインストールします。

yum install -y subversion mod_dav_svn

2. SVNリポジトリの作成

リポジトリを格納するための親ディレクトリを作成し、その中にsvnadminコマンドで新規リポジトリを作成します。

# リポジトリの親ディレクトリを作成
mkdir -p /var/www/svn

# 'myrepo'という名前でリポジトリを作成
svnadmin create /var/www/svn/myrepo

次に、バージョン管理の基本となるtrunk, tags, branchesディレクトリをリポジトリ内に作成します。

svn mkdir file:///var/www/svn/myrepo/trunk \
            file:///var/www/svn/myrepo/tags \
            file:///var/www/svn/myrepo/branches \
            -m 'Initial directory structure'

最後に、作成したリポジトリの所有者をApacheの実行ユーザーに変更し、Webサーバーからのアクセスを許可します。

chown -R apache:apache /var/www/svn/myrepo

3. Apacheの設定

mod_dav_svnの設定ファイルを作成し、HTTP経由でリポジトリにアクセスできるようにします。

/etc/httpd/conf.d/subversion.confを編集します。

<Location /svn/myrepo>
  DAV svn
  SVNPath /var/www/svn/myrepo
  
  # --- アクセス制御 (必要に応じて設定) ---
  # AuthType Basic
  # AuthName "Subversion Repository"
  # AuthUserFile /var/www/svn/.htpasswd
  # Require valid-user
</Location>

上記の設定では、/svn/myrepoというURLで、/var/www/svn/myrepoのリポジトリにアクセスできるようになります。認証が必要な場合は、コメントアウトされているAuthTypeなどのディレクティブを有効化してください。

設定を反映させるためにApacheを再起動します。

# CentOS 6
service httpd restart

# CentOS 7
systemctl restart httpd

4. 基本的な操作

設定が完了すれば、クライアントからsvnコマンドでリポジトリを操作できます。

チェックアウト:

svn co [http://your-server.com/svn/myrepo/trunk](http://your-server.com/svn/myrepo/trunk) my-working-copy

既存プロジェクトのインポート:

svn import -m "Initial import" /path/to/my-project [http://your-server.com/svn/myrepo/trunk](http://your-server.com/svn/myrepo/trunk)

さいごに

より詳しい情報や他の技術メモについては、私のブログもご覧ください。

MyNote
https://mynote.meantix.com/

Discussion