SVNリポジトリをhttp(WebDAV)でアクセス出来るようにする
Mac OS X 10.5.8
Leopardで、Subversion(SVN)によるWebサイト(ホームページ)の管理システムを構築しました。何回かに分けて、紹介しています。
作成したリポジトリへは、file:///Users/Svn/reposと言う書き方でアクセス出来ます。この方法の他に、httpでアクセスする方法を追加します。
今回の、「SVNによるWebサイト(ホームページ)管理」には、若干オーバースペックなのですが、次の利点があります。
- LANを組んでいる場合、他のマシンからリポジトリにアクセス出来る
- 他のアプリケーションからアクセスしやすい場合がある
- SVNディレクトリのユーザーとグループを適切に設定出来る
なお、今後の説明は全て、Mac OS X 10.5.8 Leopardでの場合です。ターミナルでの操作が出来る事を前提としています。
Apacheの設定を変えるのは、/etc/apache2/httpd.confを変更するのが定石なのです。でも、Mac OS Xの場合は、/etc/apeche2/others/の下に設定ファイルを置けば、一緒に読み込んでくれます。これを利用して、設定ファイルを置きます。設定ファイル名は、".conf"で終わっている必要があります。この様にすれば、/etc/apache2/httpd.confに手を加えなくて済みます。
/etc/apache2/other/svn.confを設定します。
$ cd /etc/apache2/other $ sudo vi svn.conf
viエディタ(他のエディタでも構いません)を使って、次の内容を入力します。
# Subversion connections LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so <Location /svn> DAV svn SVNListParentPath on SVNParentPath /Users/Svn/repos #SVNIndexXSLT "/svnindex.xsl" AuthType Basic AuthName "Subversion repositories" AuthUserFile /Users/Svn/svn_passwd Require valid-user </Location>
/Users/Svn/reposに、「SVNリポジトリの作成」で作ったリポジトリが置かれているものとしています。Apacheはこのディレクトリ内のリポジトリを自動検出します。
LoadModuleをhttpd.conf以外に書くのは、ちょっと反則的かもしれませんが、dav_svn_moduleを使うのは、SVNをhttpでアクセスしたい場合だけだと思いますので、よしとします。
Basic認証を利用して、不正アクセスができないようにしています。この利用の為には、パスワードファイルを作る必要があります。次の場合は、"user1″と言う名前でアクセス出来るようにしています。
$ cd /Users/Svn $ sudo htpasswd -c svn_passwd user1 New password: Re-type new password: Adding password for user user1
実際には、user1ではなく、普段使うMac OS Xのuid(whoamiコマンドで確認可能)を登録しておいた方が便利です。
Webサーバプログラムが、正しくリポジトリにアクセス出来るように、アクセス権を設定します。
$ cd /Users $ sudo chown –R www:www Svn $ cd Svn $ sudo chmod 600 svn_passwd $ ls -l svn_passwd -rw------- 1 _www _www 21 2 15 20:32 svn_passwd
ここまでの設定が終わったら、システム環境設定→共有で、Web共有を「入」にします。既に、「入」になっている場合は、一度チェックを外して、もう一度チェックします(Web共有を再起動します)。
インターネットブラウザから、アクセスしてみます。http://localhost/svn/がURLになります。パスワードを聞かれるはずなので、先ほど設定した"user1″とパスワードを入力して下さい。
wwwlocalが見えるでしょうか? これが、作成したリポジトリになります。wwwlocalをクリックすると、画面が切り替わります。これで、成功です。
/Users/Svn/reposの中に作られたリポジトリは自動的に検出され、httpでアクセス出来るようになっています。なので、wwwlocal以外のリポジトリを/Users/Svn/reposの中に作れば、設定不要でアクセス出来るようになります。
[amazonjs asin="4774119113" locale="JP"]http(WebDAV)アクセスの設定には、次の記事を参考にしました。
Adobeの記事の存在は、次の記事から知りました。ありがとうございます。
少し、設定の続きがあるのですが、それは次回にします。
【シリーズ記事】
ディスカッション
コメント一覧
まだ、コメントがありません