さくらレンタルサーバでSubversion用Apacheサーバを構築する


***** ご注意 *****

2012/6/5追記 (annbeyさん、ご指摘頂きありがとうございます)
本方法による、さくらレンタルサーバ内でのApache別プロセスの起動は、さくらレンタルサーバの禁止事項で禁止されています。
規約を十分把握していない状態で、このような記事を掲載してしまい申し訳ありません。
同様の事をご検討されているさくらレンタルサーバ利用者の方々はご注意ください。

2012/6/8追記 (annbeyさん、共有頂きありがとうございます)
なお、さくらVPSでは、本方法の使用は大丈夫のようです。
私は、さくらVPSで本方法を実際に試したことはありませんが、ご興味のある方はお試しください。



****** 以下、記事 *****

さくらレンタルサーバに元々インストールされている80番ポート向けのApacheには、mod_dav_svnなどのSubversionサーバとして機能するために必要なモジュールがインストールされていない。
そこで、別のポート向けに別のApacheサーバをインストールし、それをSubversionサーバとして稼働させる。
その際のログは以下の通り:

# Apacheをインストール
> cd ~/tmp
> wget http://ftp.riken.jp/net/apache//httpd/httpd-2.2.22.tar.gz
> tar xvfz httpd-2.2.22.tar.gz
> cd httpd-2.2.22
> ./buildconf
> ./configure --prefix=/home/<user folder>/local/apache2 --enable-dav --enable-so --enable-maintainer-mode --enable-ssl
> make
> make install
> cd ..
# APRをインストール
> wget http://ftp.riken.jp/net/apache//apr/apr-1.4.6.tar.gz
> tar xfvz apr-1.4.6.tar.gz
> cd apr-1.4.6
> ./configure --prefix=/home/<user folder>/local/apache2/
> make
> make install
> cd ..
# APR Utilをインストール
> wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//apr/apr-util-1.4.1.tar.gz
> tar xvfz apr-util-1.4.1.tar.gz
> cd apr-util-1.4.1
> ./configure --prefix=/home/<user folder>/local/apache2/ --with-apr=/home/<user folder>/local/apache2/bin/apr-1-config
> make
> make install
> cd ..
# Subversionをインストール
> wget http://subversion.tigris.org/downloads/subversion-1.6.17.tar.gz
> tar xvfz subversion-1.6.17.tar.gz
> cd subversion-1.6.17
> ./configure --prefix=/home/<user folder>/local/apache2/modules --with-apache-libexecdir=/home/<user folder>/local/apache2/ --with-apr=/home/<user folder>/local/apache2/bin/apr-1-config --with-apr-util=/home/<user folder>/local/apache2/bin/apu-1-config --with-apxs=/home/<user folder>/local/apache2/bin/apxs
> make
> make install

上記、試行錯誤の結果を整理したものなので、抜け等がある可能性がありますがご了承ください。

続いて、Apacheの設定ファイルを編集する:

--- /home/<user folder>/local/apache2/conf/httpd.conf.bak	2012-02-19 08:25:59.000000000 +0900
+++ /home/<user folder>/local/apache2/conf/httpd.conf	2012-02-19 09:01:52.000000000 +0900
@@ -37,7 +37,7 @@
 # prevent Apache from glomming onto all bound IP addresses.
 #
 #Listen 12.34.56.78:80
-Listen 80
+Listen 8080

@@ -50,7 +50,8 @@
 #
 # Example:
 # LoadModule foo_module modules/mod_foo.so
+LoadModule dav_svn_module     modules/mod_dav_svn.so
+LoadModule authz_svn_module   modules/mod_authz_svn.so
 #
 
 <IfModule !mpm_netware_module>
@@ -415,3 +416,13 @@
 SSLRandomSeed startup builtin
 SSLRandomSeed connect builtin
 </IfModule>
+
+<Location /svn>
+    DAV svn
+    SVNParentPath /home/<user folder>/svn
+
+    AuthType Basic
+    AuthName "Subversion Authentication"
+    AuthUserFile /home/<user folder>/local/apache2/conf/svn.repos.passwd
+    Require valid-user
+</Location>

上記設定は、Subversionリポジトリが~/svn以下あり、Basic認証用のパスワードファイルがsvn.repos.passwdと言うファイル名で~/local/apache2/conf以下にあることが前提です。またリポジトリは、認証されたユーザでなければ閲覧・編集できません。
この辺りの詳しい情報は、別の関連サイトをあたって下さい。

以上が完了したら、設定ファイルの構文チェックを行い、サーバをスタートさせる:

> ~/local/apache2/bin/apachectl configtest
> ~/local/apache2/bin/apachectl start

Webブラウザや、Subversionクライアントからリポジトリにアクセスし、ログイン・閲覧が問題なくできるか確認する。