Apache + Subversion ライブラリサーバーたてるめも

検証バージョン Apache2.2.16 + Subversion 1.16

アドバイスは以下の3点。
 ・公式ガイドは時々ブラフをかます
 ・Apacheの旧Verと新しいVerは同居させるな 過去のモジュール全部消しとけ
 ・ネットに転がってる文書は相当古いものが多い 対象バージョンは要確認

ApacheとSubvrsionのダウンロード、インストールは適当。
Apacheの「httpd.conf」書きなおすあたりからが面倒くせーです。


(1) Apacheの動作確認

http://localhost/にアクセス。
「あなたの予想に反して、このページが…」というれいの文言はVer2.2では出ません。「It work!」って一行でればOK。アパッチ族の羽根ロゴくらい出してくれりゃいいのに。


(2) SubversionのモジュールをApacheのディレクトリにコピー

Subversionのインストールフォルダの下から、以下4つのファイルをサルベージ。
もし見つからなかったらApache非対応のSubversion落としてきてるか、バージョン間違えてるか何かだと思われる。

mod_dav_svn.so
mod_authz_svn.so
libdb44.dll
intl3_svn.dll

こいつらをApacheインストールディレクトリの下の/modules フォルダにコピー。dllは必須。
認証機能を使わないなら、mod_authz_svn.so は要らない。


(3)モジュールを読み込ませる指定をhttpd.confに書く

Apacheインストールフォルダの下の/conf の中にhttpd.confがあるので、開いて、コメントアウトしてある以下の行のコメントはずす。

#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so


このときmod_dav.soもコメントアウトはずさないとApacheが起動しなくなるので注意な!

「LoadModule」から始まる行が沢山続いているので、その一番下に、以下の二行を追加する。
最後じゃなくても別にいいんだが、読み込む順番的にmod_dav.soの後じゃないとダメらしい。

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

mod_authz_svn.so は認証機能使わないなら、書かなくていい。


(4)http.confにsyn passsを書き込む

ファイルの一番最後に、こういうのを書き込む。
C:/ripoはリポジトリを作成するディレクトリ。


 DAV svn
SVNListParentPath on
 SVNPath C:/ripo


認証機能使うならこんなかんじ


DAV svn
SVNListParentPath on
SVNParentPath C:/SVN
#SVNIndexXSLT "/svnindex.xsl"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user


AuthType~ から Require~ の部分は、書いてあるとpassword設定してなくても認証画面が出て鬱陶しいので用事がないなら書かなくていい。


(5) Apach再起動

コマンドラインからでも、管理ツールのサービスからでも、右下のタスクトレイからでもお好きに…。
起動しなくなったらhttpd.confの読み込みに失敗しているので、Apacheインストールディレクトリ以下の/logの中にあるerror.logを見てみるといい。
Windowsのエラーログは信用ならん。


ぶじApacheが再起動されて、http://localhost/svn/ にアクセスしてリビジョン番号が見えれば設定終了。



…しかしあれだ作ってみたはいいものの、いちいちコミットするのが面倒くせぇという話…。
当たり前だがコミットし忘れるとなんもバージョン管理してくれんのだな(笑) 陸ガメ君入れてGUIで使ってみたけどリポジトリアクセスが若干遅いのはファイル多すぎってことですかそうですか。