この情報は、 ファーストサーバVPS「プロビジネス20」上での設定記録 です。
他のLinuxサーバでは設定方法が異なる部分があると思います。
(プロビジネス5上でも同様に設定できました。2008-10-23)
例によってParallelsのPowerPanelのpackages から選択してインストールする。
mod_dav_svnをインストールすると、
がインストールされる。
設定は、subversion.conf に対して行い、設定方法は、subversion.conf 内に書いてあるのでそれに従う。
/var/www/svn/myrepos にsvnのレポジトリを用意する。
さらにオーナーとグループをapacheに設定。
(これはApache経由でアクセスするために、Apacheがsvnのレポジトリを読み書きできないといけないから...subversion.confに書いてある通り)
$ su # cd /var/www # mkdir svn # cd /var/www/svn # svnadmin create myrepos # cd /var/www # chown -R apache.apache svn
svnserver.conf
/var/www/svn/myrepos/conf/svnserver.conf はapache経由で使う場合は、設定変更の必要はない。
/etc/httpd/conf.d/subversion.conf を以下のように設定。
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
</Location>
ここまで設定できたら、Apacheを再起動(/etc/init.d/httpd restart) して、作動を確認します。
作動確認方法:以下のURLにアクセスして、レポジトリが閲覧できるか確認。
レポジトリを一般公開しない場合は、パスワードで保護します。
/var/www/svn/myrepos/conf/myhtpasswd に hoge ユーザ(とそのパスワード)を用意します。
# cd /var/www/svn/myrepos/conf # htpasswd -c -m myhtpasswd hoge ....
/etc/httpd/conf.d/subversion.conf
の Location 記述部分を以下のように設定し直す。
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/www/svn/myrepos/conf/myhtpasswd
Require valid-user
</Location>
# /etc/init.d/httpd restart # svn ls http://localhost/svn/myrepos/ --username hoge
subversion.conf 内に説明があるので、それにしたがって設定していけば問題はない。
個人的には以下の点でつまずいた。
# svnadmin create /var/www/svn-repos
として、このディレクトリにレポジトリを作成して、
subversion.conf の設定で、 SVNParentPath /var/www/svn-repos と指定していたのだが、これではエラーになる。
実際には、以下のように svn ディレクトリを作成し(これはレポジトリではない)
# mkdir /var/www/svn # svnadmin create /var/www/svn/svn-repos
svnの中に、svn-reposというレポジトリを作成する。
さらに、subversion.conf では、以下のように svn-repos の親ディレクトリを指定する。
(SVNParentPathの設定なので...親ディレクトリを指定)
SVNParentPath /var/www/svn
おそらく、Apacheユーザがアクセスできる場所にレポジトリを設置すればいいという話で、/var/www/svn 以下である必要はない(はず)。
しかし、普通 foo というUNIXユーザがいたら、/home/foo がホームディレクトリなので、/home/foo/svn/myrepos などにsubversionのレポジトリをつくるのが普通・・・というか人情というか。
で、そこにつくった場合、/home/foo/svn を apacheユーザ・apacheグループに設定しておいてもApacheからアクセスできないといわれてしまう。
補足:
/var/www/svn に配置するとうまく機能するので、/home/foo/svn に配置したときにうまくいかない理由は詳しく追求していません。
大島の単なる勘違い・設定ミスの可能性も高い。
MindBoard は 直観的な操作で簡単にマインドマップを描くことができる Android タブレット用アプリです。