📂
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
Discussion