FreeBSD 10.4 RELEASE - Subversion - 基本設定
1. ports ここでは、「https」を通して、「Subversion」のリポジトリにアクセスする方法を説明しますので、「apache」とともにインストールします。 /usr/ports/www/apache24 /usr/ports/www/mod_dav_svn /usr/ports/devel/subversion apache のインストールについては「ウェブサーバ apache24」を参考にしてください。 mod_dav_svn は https に必要なモジュールで、以前は、subversion のオプションで選択できていたのですが、現在ではオプションから選択肢が消えています。 別途インストールすることになるので注意してください。 mod_dav_svn は subversion と依存関係があるため、mod_dav_svn をインストールすると同時に subversion もインストールすることになります。 suvbersion のリポジトリを別のバックアップサーバに同期させる場合は、/usr/ports/devel/subversion のオプションで必ず SERF にチェックをいれてください。 2. リポジトリの作成 リポジトリの名前を hogehoge、配置する場所を /usr/local/www/svn とすれば > mkdir /usr/local/www/svn > svnadmin create /usr/local/www/svn/hogehoge > chown -R www:www /usr/local/www/svn/hogehoge リポジトリの作成はこれだけです。 ちなみに、Subversion サーバで使用するマシンが Subversion サーバとしてしか使用しない場合も、apache の /usr/local/etc/apache24/httpd.conf で定義している DocumentRoot と Subversion のリポジトリを定義している場所は物理的に別のディレクトリを定義しなければなりません。 同じディレクトリを使用しているとクライアントでチェックアウトしようとするときに svnsync: リポジトリは恒久的に 'リポジトリの URL' へ移動しました。relocate (参照 URL の変更) を実行してください というエラーになって、チェックアウトできません。 3. ウェブアクセス設定 ウェブ経由でアクセスできるように設定します。 /usr/local/etc/apache24/httpd.conf に以下の記述があることを確認し、なければ追加します。 LoadModule dav_svn_module libexec/apache24/mod_dav_svn.so 追加する場合は、LoadModule の記述の続く行の固まりの末尾くらいがよいです。 /usr/local/etc/apache24/Includes に svn.conf というファイルを作成して以下のように記述します。 <Directory "/usr/local/www/svn/"> Options Followsymlinks AllowOverride All Require all granted </Directory> <Location /svn> <IfModule dav_module> DAV svn SVNParentPath /usr/local/www/svn </IfModule> AuthType Basic AuthName "Subversion hogehoge" AuthUserFile /usr/local/www/svn/passwd # ← パスワード設定する場合です Require valid-user SSLRequireSSL SSLVerifyClient require SSLVerifyDepth 1 SSLRenegBufferSize 100000000 <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> Order Allow,Deny Allow from all </Location> 16行目、パスワード設定については「apache24 - アクセス制限」を参照。 ここまで記述したら、定義ファイルの確認をして apache を再起動します。 /usr/local/etc/rc.d/apache22 configtest /usr/local/etc/rc.d/apache22 restart
/usr/ports/www/apache24 /usr/ports/www/mod_dav_svn /usr/ports/devel/subversion
> mkdir /usr/local/www/svn > svnadmin create /usr/local/www/svn/hogehoge > chown -R www:www /usr/local/www/svn/hogehoge
svnsync: リポジトリは恒久的に 'リポジトリの URL' へ移動しました。relocate (参照 URL の変更) を実行してください
LoadModule dav_svn_module libexec/apache24/mod_dav_svn.so
<Directory "/usr/local/www/svn/"> Options Followsymlinks AllowOverride All Require all granted </Directory> <Location /svn> <IfModule dav_module> DAV svn SVNParentPath /usr/local/www/svn </IfModule> AuthType Basic AuthName "Subversion hogehoge" AuthUserFile /usr/local/www/svn/passwd # ← パスワード設定する場合です Require valid-user SSLRequireSSL SSLVerifyClient require SSLVerifyDepth 1 SSLRenegBufferSize 100000000 <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> Order Allow,Deny Allow from all </Location>
/usr/local/etc/rc.d/apache22 configtest /usr/local/etc/rc.d/apache22 restart