WebDAV/Subversion の設定
約3週間ぶりの更新ですね。どうも順調に更新ペースが落ちているような気がします。ナントカシナイト……。
今日はしばらくぶりに、ガチガチのLinuxのお話。ちょっとした事情で、家庭内LANで動かしているCentOSのサーバーにWebDAVをインストールしたのでその備忘録です。
残念ながら実際に使うまえに用済みになってしまったので、実運用はしておらず、中途半端なメモになっているのですが、そういう事情から余計に、後で忘れてしまいそうなので、丁寧めにメモしておきます
パッケージのインストール
インストールはいつものyumで一発です。
# yum install mod_dav_svn
既にapacheとsubversionが動いている環境なら追加でインストールされるのはこのパッケージのみで、インストールされるファイルも3つしかありません。
$ rpm -ql mod_dav_svn /etc/httpd/conf.d/subversion.conf /usr/lib/httpd/modules/mod_authz_svn.so /usr/lib/httpd/modules/mod_dav_svn.so
Subversionリポジトリの作成
私の場合、既にいくつかのSubversionリポジトリを /var/svnrepos/ 以下に置いているのですが、今回、WebDAVでアクセスするためのリポジトリは /var/www/svn/ 以下に新規に作成することにしました。
というのも、このリポジトリはapacheでアクセスできるパーミッションに設定する必要があり、SELinuxもきちんと有効に働かせたいので、保存ディレクトリをCentOSの推奨から外れるといろいろと面倒なことになるためです。きちんと分かっている人なら自分でなんとでもできるかと思いますが、多分、 Security Context が httpd_sys_content_t になっていないとSELinuxに蹴られることになるでしょう。
……といったことが設定ファイル(後述)中に英語でしっかり書いてありますので、嫌がらずにちゃんと読んでから作業しましょう。
# mkdir /var/www/svn # cd /var/www/svn # svnadmin create mydata # chown -R apache:apache mydata # ls -Z drwxr-xr-x apache apache user_u:object_r:httpd_sys_content_t mydata
設定ファイルの修正
設定ファイルは /etc/httpd/conf.d/subversion.conf にインストールされます。 /etc/httpd/conf.d/ 配下のファイルはhttpdがかってに読み込んでくれますので、あとは、この設定ファイルを自分の環境にあうように編集すればOKです。デフォルトではモジュールは読み込まれますが、ディレクトリの設定はコメントアウトされていて、一切設定されていません。
パスの設定などは設定例のままで良いとして、アクセス制限の範囲には要注意です。今回の用途では家庭内のみでの使用だったので、ローカルIPからのアクセスのみ許すように設定しました。重要なデータであれば、SSL必須にしたり、パスワード制限をかけたりといった配慮が必要かもしれません。
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /var/www/svn order deny,allow deny from all allow from 192.168.0.0/24 allow from 127.0.0.1 </Location>
(2009-11-16 追記: localhost を忘れてたので↑に書き足しました)
設定を修正したら、httpdを再起動するか、設定をreloadさせます。
# /sbin/service httpd reload Reloading httpd: [ OK ]
簡単な動作確認
WebDAVのリポジトリは中身を覗くだけならブラウザで簡単にできます。アドレスは今回の例では http://サーバー名/repos/mydata/ になります。 現在のリビジョン番号(作ったばかりなら0)とリポジトリの中身(作ったばかりなら空)が表示されたら成功です。
クライアント側の設定
本来ならここで、クライアント側の設定を行い、実際にリポジトリを使うことになるわけですが、最初に書いたとおり、実際に使う前にお役ご免になってしまったので、ここから先はなにもやってません。
というわけで、尻切れトンボですが今日はここまで。