UbuntuでWebDAV

基本的にここみただけだけど、格闘記録もコミでメモ。
http://tech.gowest.co.jp/?p=10
WebDAV使いたかっただけなんだけどなぜか手順に従ってSubversionにアクセスできるようにしてみた。
Subversionはもうインストールしてあるのでそこは省略。

インストール

$ sudo apt-get update
$ sudo apt-get install apache2
$ sudo apt-get install libapache2-svn

リポジトリ作る

$ sudo mkdir /home/svn
$ sudo svnadmin create /home/svn/repos

WebDAVの設定ファイル編集

$ sudo vi /etc/apache2/mods-enabled/dav_svn.conf

中身はデフォルトでは全部コメントアウトしてあるので無視して一番下に↓を挿入。

<Location /svn_repos>
DAV svn
SVNPath /home/svn/repos

AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>

パスワードファイル作成

$ htpasswd -c dav_svn.passwd hoge

hogeの部分はDAVにログインするユーザ名、そのあとパスワード入力二回あるので適当に。

ApacheSubversionファイルを読めるようにwww-dataユーザーにファイルオーナーを変更しておく。

$ sudo chown -R www-data /home/svn

変更を有効にするためにapacheを再起動する。

$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
 * We failed to correctly shutdown apache, so we're now killing all running apache processes. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now!
Syntax error on line 60 of /etc/apache2/mods-enabled/dav_svn.conf:
AuthName takes one argument, The authentication realm (e.g. "Members Only")

シャットダウン失敗したぽい。
dav_svn.conf書き直す

再再起動

 * Restarting web server apache2
 apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.0.40 for ServerName
httpd (no pid file) not running
apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.0.40 for ServerName

怪しい。
とりあえずブラウザからhttp://ホスト名/でアクセス。
Index of/出た。成功ぽい。
じゃhttp://ホスト名/svn_repos
500 Internal Server Error

ログ見てみる。

$ sudo cat /var/log/apache2/error.log
[Fri Nov 21 22:35:29 2008] [error] [client 127.0.0.1] (2)No such file or directory: Could not open password file: /etc/apache2/dav_svn.passwd

パスワードファイルがねーってよ。もしや。

$ sudo find -name dvn_svb*

そしたら~直下にあったw当たり前www

作り直し

$ sudo htpasswd -d /etc/apache2/dav_svn.passwd hoge

再度ブラウザからアクセス。
http://ホスト名/svn_repos

Revision 0: /

って出た。成功ぽいね。


(2008/11/23 追記)
全然できてなかったので追記
ブラウザからじゃなくTortoiseSVNからログインしようとしたらUnauthorized。
ので別フォルダで試しに設定。

$ mkdir /home/user_name/dav
$ sudo chown -R www-data /home/user_name/dav

httpd.confに

ServerName 192.168.xxx.xxx:80
Alias /davtest "/home/user_name/dav"
<Location /dav>
  DAV on
</Location>
DAVLockDB  /var/lock/dav/DAVLock

の後reboot。CarotDAVちうクライアントでhttp://ホスト名/davでログイン&ファイルアップロード完了。
svn_reposのほうはpasswdファイルを作り直しでいけた(記事の該当箇所も修正)。あと「認証を保存」にチェックいれないと何回も聞かれる。


参考
http://www.atmarkit.co.jp/flinux/special/webdav03/webdav01a.html
ちなみに記事内の
>ServerName:192.168.1.2:80
Nameと192の間、コロンじゃなくてスペースなので注意