自分だけで使うにはsvn+sshでのアクセスで十分ですが、不特定多数の人がリポジトリにアクセスできるようにする場合などはhttp経由でアクセスするのが便利だと思います。
http経由でSubversionにアクセスする場合にはmod_dav_svnというapacheのモジュールを使います。私の使っているマシ ンはFedoraですが、既にインストールされていました。インストールされていない場合でもyum install mod_dav_svnで簡単にインストールできます。
設定方法ですが、/etc/httpd/conf.d/subversion.confにmod_dav_svnの設定ファイルがあります。 Apacheの設定ですので別にこのファイルで行う必要はありませんが、Fedoraではこういう運用になっているようです。設定例がコメントに書いてあ りますので、そのコメントを外せば簡単に動かすことが可能です。
<Location /svn> DAV svn SVNParentPath /var/www/svn# Limit write permission to list of valid users. <LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. # SSLRequireSSLAuthType Basic AuthName "Authorization Realm" AuthUserFile /var/www/data/svnpasswd Require valid-user </LimitExcept> </Location>
一番最初のLocationのところでURLを指定します。SVNParentPathでリポジトリを作成するディレクトリを指定します。この場合 /var/www/svnの下にリポジトリを作ることになります。例えばtestというリポジトリを作る場合は以下のようになります。
$ svnadmin create /var/www/svn/test
そしてAuthUserFileにパスワードファイルをしています。この設定ではチェックアウトは誰でも出来ますがコミットはパスワードが必要になります。パスワードの部分はSubversionとは関係なくBasic認証の設定でhtpasswdを使って行います。
$ htpasswd -c /var/www/data/svnpasswd ユーザ名
実行するとこのユーザ名に対するパスワードの入力を求められるので、パスワードを2回入力します。
以上で作成完了です。思ったよりも簡単でした。WindowsのSubversionクライアントTortoiseSVNを使ってこのリポジトリに 試しにインポートしてみましたが、svn+sshの場合と同様の操作で、アドレスのところをhttp://サーバのアドレス/svn/testとすること でちゃんと動作しました。インポートするときには上で設定したユーザ名とパスワードの入力が必要です。
また、そのインポートした内容はブラウザからアクセスして確認できました。こちらはパスワードは必要ありません。
