使えるネットVPSとの戦い【マイリポジトリ作成編】(2)
2007年10月2日
yumで前準備
yum install pkgconfig yum install openssl-devel
・・・! yumでOpenSSL入るのか!(今気づいた。)
てか、入れてたらしい・・・。
とりあえず、オペレーションとしてはやってしまっていますが、多分不要です。
インストール
Apacheのプロセスを落としてから行うこと。
cd /usr/local/src wget http://subversion.tigris.org/downloads/subversion-1.4.5.tar.bz2 wget http://subversion.tigris.org/downloads/subversion-deps-1.4.5.tar.bz2 tar jxf subversion-1.4.5.tar.bz2 tar jxf subversion-deps-1.4.5.tar.bz2 cd subversion-1.4.5 ./configure \ --prefix=/usr/local/subversion-1.4.5 \ --with-apxs=/usr/local/apache-2.2.6/bin/apxs \ --with-apr=/usr/local/apr \ --with-apr-util=/usr/local/apr \ --with-ssl \ --with-editor=/usr/local/bin/vim make make install
※aprとapr-utilは、Apacheと同じものを見ている。
シンボリックリンクを張る
cd /usr/local ln -s subversion-1.4.5 subversion
最後に /usr/local/subversion/bin にパスを通す。
/usr/local/apache-2.2.6/conf/httpd.conf を開いて追記する
<Location "/repos/"> DAV svn SVNParentPath /home/webadmin/var/repos SVNListParentPath On AuthType Digest AuthName "Realm String" AuthDigestProvider file AuthUserFile /home/webadmin/path/to/users Require valid-user BrowserMatch "MSIE" AuthDigestEnableQueryStringHack = On </Location>
各設定の説明
- LocationとSVNParentPathとAuthUserFileの場所は、使ってる環境により変わる。
便宜上、以下の説明はこのパスにあわせて説明する。 - リポジトリのルートにアクセスする場合は、この設定だと http://mydomain.com/repos/ のように、最後が”/”で終わらないとアクセスできない。
- BrowserMatchの設定は、IEでもWeb経由でリポジトリを見れるようにする設定。ダイジェスト認証の処理についてのIEのバグで、見れない場合があるため。
- LocationMatchとSVNParentPathの相性が悪く、一緒に使うとSVNアクセス時に動かなくなる可能性がある。
上記と同様の設定を /usr/local/apache-2.2.6/conf/extra/httpd-ssl.conf にも行う。
続けて、ダイジェスト認証用のAuthUserFileを作成する。
touch /home/webadmin/path/to/users htdigest /home/webadmin/path/to/users "Realm String" username
※対話的にパスの入力を求められるので設定すること。
※”Realm String”は、httpd.confのAuthNameとあわせること。
※特にLinuxのユーザ名等とあわせる必要は無く、任意で良い。
なお、参考として、SVNPathを使う場合の設定は以下のように書く
<Location "/repos/project_name"> DAV svn SVNPath /home/webadmin/var/repos/project_name AuthType Digest AuthName "Realm String" AuthDigestProvider file AuthUserFile /home/webadmin/path/to/users Require valid-user BrowserMatch "MSIE" AuthDigestEnableQueryStringHack = On </Location>
こちらだと、細かい設定が出来る替わりに、リポジトリがひとつ増えるたびに設定を追加する必要がある。
今回は自分用なので、楽さを追及して上記の方の設定にした。
SVNリポジトリを作成して、ブラウザによる閲覧・外部からのチェックアウト・内部からのチェックアウト、が動くかを確認する。
まず、SVNルートリポジトリの作成をする。
Apache実行用ユーザ(今回はwebadmin)に変わって
mkdir -p ~/var/repos
と、普通にディレクトリを作成する。
動作確認用のtestprojectリポジトリを作成する。
svnadmin create ~/var/repos/testproject
それでは動作確認の開始!
まず、Webブラウザにて、http://mydomain/repos と https://mydomain/repos にアクセスしてリポジトリが閲覧可能かをチェックする。可能ならばIEでも調べる。
続けて、外部サーバと内部から
svn checkout http://mydomain/repos/testproject svn checkout https://mydomain/reops/testproject
これが動くかを調べて、動けばOK!
ドットファイルとか管理できていいなー。
・・・なお、自分用のメモをブログに起こしたので、途中で抜けとかがあるかもしれません。
何か気づいたら、突っ込みお願いします!