1. リポジトリの作成
リポジトリの名前を hogehoge、配置する場所を /usr/local/www/svn とすれば
mkdir -pv /usr/local/www/svn
svnadmin create /usr/local/www/svn/hogehoge
chown -R www:www /usr/local/www/svn/hogehoge
リポジトリの作成はこれだけです。
Subversion サーバで使用するマシンを Subversion サーバとしてしか使用しない場合も、apache の /usr/local/etc/apache24/httpd.conf で定義している DocumentRoot と Subversion のリポジトリを定義している場所は物理的に別のディレクトリを定義しなければなりません。
同じディレクトリを使用しているとクライアントでチェックアウトしようとするときに
svnsync: リポジトリは恒久的に 'リポジトリの URL' へ移動しました。relocate (参照 URL の変更) を実行してください
というエラーになって、チェックアウトできません。
2. /usr/local/etc/apache24/httpd.conf 設定
ウェブ経由でアクセスできるように設定します。
まず
/usr/local/etc/apache24/httpd.conf
の設定。
SSL を使用しますので、以下の先頭の # をはずしてコメント解除します。
#LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
#LoadModule ssl_module libexec/apache24/mod_ssl.so
#Include etc/apache24/extra/httpd-ssl.conf
その他、SSL に関しては「ウェブサーバ apache24」の SSL に関する記述を参考にしてください。
以下の記述があることを確認し、なければ追加します。
追加する場合は、LoadModule の記述の続く行の固まりの末尾くらいがよいです。
LoadModule dav_svn_module libexec/apache24/mod_dav_svn.so
3. /usr/local/etc/apache24/Includes/svn.conf 作成
/usr/local/etc/apache24/Includes/svn.conf
というファイルを作成して以下のように記述します。
<Directory "/usr/local/www/svn/">
Options Followsymlinks
AllowOverride All
Require all granted
</Directory>
<Location /svn>
<IfModule dav_module>
DAV svn
SVNParentPath /usr/local/www/svn
</IfModule>
AuthType Basic
AuthName "Subversion hogehoge"
AuthUserFile /usr/local/www/svn/passwd # ← パスワード設定する場合です
Require valid-user
SSLRequireSSL
SSLVerifyClient require
SSLVerifyDepth 1
SSLRenegBufferSize 100000000
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
Order Allow,Deny
Allow from all
</Location>
16行目、パスワード設定については「apache24 - アクセス制限」を参照。
4. apache 再起動
ここまで記述したら、定義ファイルの確認をして apache を再起動します。
service apache22 configtest
service apache22 restart