SVNリポジトリをhttp(WebDAV)でアクセス出来るようにする

2017年5月15日パソコン・インターネット

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をクリックすると、画面が切り替わります。これで、成功です。

20100315svn_http1

/Users/Svn/reposの中に作られたリポジトリは自動的に検出され、httpでアクセス出来るようになっています。なので、wwwlocal以外のリポジトリを/Users/Svn/reposの中に作れば、設定不要でアクセス出来るようになります。

[amazonjs asin="4774119113" locale="JP"]

http(WebDAV)アクセスの設定には、次の記事を参考にしました。

Adobeの記事の存在は、次の記事から知りました。ありがとうございます。

少し、設定の続きがあるのですが、それは次回にします。

【シリーズ記事】

SVN
によるWebサイト(ホームページ)管理

  1. SVNリポジトリの作成
  2. SVNリポジトリをhttp(WebDAV)でアクセス出来るようにする
    SVNリポジトリをhttp(WebDAV)でアクセス出来るようにする(おまけ)
    SVNリポジトリをhttp(WebDAV)でアクセス出来るようにする(Digest認証化)
  3. SVNリポジトリの中にサイトデータを作る
  4. サイトデータの作業コピーでの作業(ターミナル編)
    サイトデータの作業コピーでの作業(Emacsのpsvn編)
  5. SVNでローカルサイトの自動更新
  6. ローカルサイトをアクセス出来るようにする
  7. ローカルサイトからインターネットへ

Posted by お市のかた