WebDAV+SVNの設定で苦戦
gusagiです。
今日は、WebDAV+SVNの設定に苦戦した一日だったので、はまった部分と設定方法について書きたいと思います。
RYUSでは、スタッフが増えてきたこともあり、作業の効率化のために色々と取り組んでいたりします。
ソースの管理についても、LAN内部でSVNを使うか、インターネット経由でもSVNを利用可能にするか検討中なのですが、実際に使ってみようということで、svn+sshでのアクセスや、WebDAV+SVNでのアクセスなど試してみました。
元々、svn+sshでの設定方法は判っていたのであっさりと実験出来たのですが、この場合サーバアカウントが必要になるなど、SVN利用者が増えるに従って管理が複雑になってきます。
逆に、WebDAV+SVNの場合は、アカウント管理はかなり単純になります。
ただし、暗号化やアクセス制御などは必要なので、こちらの設定が多少複雑化も知れません。
例として、http://example.com/repos でSVNにアクセス出来るようにしようと思います。
ドキュメントルートは /var/www/html、リポジトリは /home/project/svn とします。
WebDAV+SVNを利用する場合、mod_dav_svnやmod_authz_svnが必要なので、これらのモジュールを事前にインストールしておきます。
次に、apacheの設定ファイルで
<Location "/repos">
DAV svn
SVNPath /home/project/svn
AuthzSVNAccessFile /var/www/html/svn/.authz
AuthType Basic
AuthName "Authentication"
AuthUserFile /var/www/html/svn/.htpasswd
Require valid-user
</Location>
と記述します。
上記の設定をした場合、/var/www/html/svn/.htpasswdに記述されたユーザのみ、/var/www/html/svn/.authzに記述された権限に従って、リポジトリにアクセスが可能になります。
なお、上記2ファイルはドキュメントルートの外に置いた方が安全です。
ここまで設定したら、apacheを再起動して、設定を有効にしてからブラウザでアクセスが出来るか確認します。
私も、ここまでは問題なく出来たのですが、この先ではまりました。
TortoiseSVNや、コマンドラインでリポジトリにアクセスしようとしたところ、
svn: PROPFIND of '/repos': 403 Forbidden
というエラーが発生したのです。
ブラウザでは問題なくアクセス出来ているので、しばらくあれこれと調べてみたところ、apacheのエラーログにこんな記述が。
client denied by server configuration: /var/www/html/repos
「ブラウザではアクセス出来ているのに、なぜ設定で不許可?」と思いつつgoogleで検索したところ、参考になるサイトを発見!
どうやら、
さっそく上記のサイトを参考に、
<Directory /var/www/html/repos>
AllowOverride All
Options All
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND MKACTIVITY CHECKOUT MKACTIVITY DELETE PROPPATCH MKCOL MERGE REPORT PUT COPY>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
とすることで、無事にアクセスが出来るようになりました。
RSS feed for comments on this post.
Ȥ
ʤߥȤդ뤳ȤϽޤ
バージョンアップしました
サーバに利用しているOSの最新バージョンがリリースされたので、久しぶりに全面的なバージョンアップを行いました。
22時前後から開始して、ついさっきまで掛かったので、大体2時間弱の間サイトが見れない状態となってしまい、見に来て下さった方には大変失礼いたしまし…
Trackback by ぐさぎ どっと こむ - ブログ — 2008年1月24日(木曜日) @ 00時06分35秒