Apache2 WebDAV Subversion

Gentoo 本に Apache2 で WebDAV を有効にする方法が書かれていたので,ついでに各所を参考にして Subversion も付けてみることにした.


WebDAV … HTTP を拡張して,ディレクトリ作成,ファイル削除など FTP っぽいファイル共有を可能にするもの.
Subversionバージョン管理システムCVS の後継.日本語ファイル名ヘの対応など CVS で気持ち悪かった不具合がいくらか修正されている.

# USE="apache2 berkdb" emerge subversion
# USE="berkdb" emerge apache

USE フラグに apache2 を加えないと apache2 にブロックされて emerge subversion に失敗するようだ.
berkdb フラグはなんとなく付けてみた.付けないと困るのかどうかはまだ分からない.
Apache2 標準のモジュールである mod_dav.so や mod_dav_fs.so などは /usr/lib/apache2/modules にインストールされるが,Subversion の mod_dav_svn は /usr/lib/apache2/extramodules にインストールされるようだ.

WebDAV の設定は Gentoo 本では /etc/apache2/conf/apache2.conf に追加しているが,/etc/conf.d/apache2 を編集して APACHE2_OPTS に "-D DAV -D DAV_FS -D SVN" という変数定義を加え,/etc/apache2/conf/modules.d 以下にある WebDAVSubversion の設定ファイルを有効にするのが正しい方法のようだ.

mod_dav_fs.so のために

# mkdir /var/lib/dav
# chown apache:apache /var/lib/dav

を実行し,mod_dav_svn.so のために

# mkdir /var/svn
# svnadmin create /var/svn/repos
# chown -R apache:apache /var/svn
# mkdir /var/svn/conf
# htpasswd2 -c /var/svn/conf/svnusers ユーザ名

を実行した.

chown apache:apache 〜 とするのは,Apache から WebDAV のロックファイルや Subversionリポジトリに書き込めるようにするため.

/etc/init.d/apache2 restart して,ブラウザで http://localhost/svn/repos/ にアクセスすればリポジトリが閲覧でき,コンソールから

$ svn co http://localhost/svn/repos

などとすれば svn のコマンドが実行できる.
htpasswd2 で /var/svn/conf/svnusers にユーザ情報を書き込んでおかないと,アクセスしたときに認証が掛かってびっくりする.

  • 参考ページ

http://www.liris.org/zope/blog/220
http://www.strikeout.jp/hiki/memo/?(Subversion)GentooDeSVN
http://www.atmarkit.co.jp/flinux/special/webdav03/webdav02c.html