Apache2 + Subversion1.4 (WebDAV) を Debian GNU/Linux (Etch) にインストールしたときのログ。
# svnserve ではなくて、Apache(HTTP+WebDAV) 経由でのアクセスでやりたい方向け。
Subversionは、現時点の最新版(1.4.3)で構築。
ダウンロード
普通にwgetあたりで取得。
$ cd install $ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/httpd-2.0.59.tar.gz $ wget http://subversion.tigris.org/downloads/subversion-1.4.3.tar.gz
Apacheのインストール
解凍して、まずはconfigureから。
$ tar zxvf httpd-2.0.59.tar.gz $ cd httpd-2.0.59/ $ ./configure \ --prefix=/usr/local/apache2 \ --enable-shared=yes \ --enable-dav=yes \ --enable-dav-fs=yes \ --with-ldap \ --enable-ldap=yes \ --enable-auth-ldap=yes \ --enable-rewrite \ --enable-ssl
エラーが出た。OpenSSLのheaderがない、と。
この手は、大抵develパッケージがないときなんだよね。
checking for SSL/TLS toolkit base... /usr checking for SSL/TLS toolkit version... OpenSSL 0.9.8c 05 Sep 2006 checking for SSL/TLS toolkit includes... configure: error: OpenSSL headers not found
調べてみると、openssl-develパッケージを入れろ、と皆おっしゃっている。
が、aptでは、そんなパッケージ名は無かったので、cacheをサーチしていたら、それっぽい(libssl-dev)のを発見。
上記パッケージをインストール後、もう一回、configureし直すと、今度は成功。
$ su - # apt-get update # apt-get install libssl-dev # exit $ ./configure \ --prefix=/usr/local/apache2 \ --enable-shared=yes \ --enable-dav=yes \ --enable-dav-fs=yes \ --with-ldap \ --enable-ldap=yes \ --enable-auth-ldap=yes \ --enable-rewrite \ --enable-ssl $ make $ make install $ cd ..
Subversionのインストール
同じ要領でサクサクっと。
$ tar zxvf subversion-1.4.3.tar.gz $ cd subversion-1.4.3/ $ ./configure --prefix=/usr/local --with-apxs=/usr/local/apache2/bin/apxs $ make $ make install
うまくインストールできたみたい。ここまででインストール自体は完了。次は設定。
Subversionのリポジトリの作成
テスト用として、testリポジトリの作成。
# リポジトリのowner, permissionに注意!
$ sudo mkdir -p /var/svn/repos $ sudo svnadmin create /var/svn/repos/test $ sudo chown -R apache /var/svn/repos
ownerやpermissionをきちんとapacheのプロセスのownerにあわせておかないと、参照はできても、コミットできないとかになっちゃうので。
Apacheのconfigファイルの編集
Apacheの設定ファイル(httpd.conf)の詳しいことについては、他の素晴らしいWebサイトでたくさん紹介されているので、そちらをご参考に。
ここには、Apacheのドキュメントへのリンクを貼っておきます。
http://httpd.apache.org/docs/2.0/ja/
ということで、httpd.confを編集。
$ sudo vi /usr/local/apache2/conf/httpd.conf
User、Group、ServerNameあたりを適切なものに変更。
User、Groupは、まずはApacheとかでいいか。Apacheユーザは必要になるので作っておきましょう。
# apacheユーザは、ログイン不可とかにしておきましょう。
あと、以下を追記。
<Location /svn> DAV svn SVNParentPath /var/svn/repos SVNListParentPath On #AuthType Basic #AuthName "Subversion Server" #AuthUserFile /usr/local/apache2/conf/svn-users #Require valid-user </Location>
認証を行う場合は、上記のコメントアウト部分を外してください。
もちろん認証用ファイル(AuthUserFile)も必要になります。
Apacheの起動
あとは、Apacheを起動して、、、
$ sudo /usr/local/apache2/bin/apachectl start
ブラウザから、さっき作ったtestリポジトリにアクセス!
http://{hostname or IPアドレス}/svn/test
うまくリポジトリ内が参照できて、かつクライアント(TortoiseSVN等)からコミットするところまで確認して構築完了。