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にログインするユーザ名、そのあとパスワード入力二回あるので適当に。
ApacheがSubversionファイルを読めるように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の間、コロンじゃなくてスペースなので注意