CentOS5.4でsubversion(+apache)を動かす | ヘビィ・SMD!

ヘビィ・SMD!

そんな・・・バナナ!!
1. 甘え度+10 恐れ度+10 寿命-1週間
2. 甘え度+10 恐れ度-10
3. 甘え度-10 恐れ度-10 寿命+1週間


CentOS5.4でapache+subversionを導入するための手順をログしておこうと思う。
svnserveでも動かすことはできるけど、複数のリポジトリを管理する時などはこっちのほうが便利なので。
最低限度の設定しか入れていないので、apacheのssl設定やその他もろもろの手順は他を参考にしてください。
git?なにそれおいしいの?

最初にapacheの実行ユーザwwwを作成しておく。

[root@vm ~]# groupadd www
[root@vm ~]# useradd -g www -d /home/www -s /sbin/nologin www

次に、apacheをインストールする。(2010-09-05時点での最新は2.2.16のようです。)

[root@vm ~]# cd /usr/local/src/
[root@vm src]# wget http://ftp.riken.jp/net/apache//httpd/httpd-2.2.16.tar.gz
[root@vm src]# tar zxf httpd-2.2.16.tar.gz
[root@vm src]# cd httpd-2.2.16
[root@vm httpd-2.2.16]# yum install openssl-devel.i386
[root@vm httpd-2.2.16]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd/conf --datadir=/var/www --localstatedir=/var --enable-module=so --enable-proxy --enable-headers --enable-ssl --enable-rewrite --enable-shared=max --enable-rule=SHARED_CORE --enable-dav
[root@vm httpd-2.2.16]# make
[root@vm httpd-2.2.16]# make install

続いてsubversionのインストール。(2010-09-05時点での最新は1.6.12のようです。)

[root@vm ~]# cd /usr/local/src/
// 本体のダウンロード
[root@vm src]# wget http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz
[root@vm src]# tar zxf subversion-1.6.12.tar.gz
// 関連パッケージなどを包括したもの、らしい。
[root@vm src]# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz
[root@vm src]# tar zxf subversion-deps-1.6.12.tar.gz
[root@vm src]# cd subversion-1.6.12
// libxml2-develがないと怒られた気がしたけど、問題なく通った。
[root@vm subversion-1.6.12]# ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs
// selinuxを無効にしていないと変なエラーが出た。エラー内容を忘れてしまったので割愛。
[root@vm subversion-1.6.12]# make
[root@vm subversion-1.6.12]# make install

svn用のディレクトリを作成する。
リポジトリ用のディレクトリと、アクセス制限用のディレクトリを作成。
そしてリポジトリの作成も。

[root@vm subversion-1.6.12]# mkdir /var/svn
[root@vm subversion-1.6.12]# mkdir /var/svn/conf
[root@vm subversion-1.6.12]# mkdir /var/svn/repos
[root@vm subversion-1.6.12]# /usr/local/svn/bin/svnadmin create /var/svn/repos
// 所有権をwwwにしておく。
[root@vm subversion-1.6.12]# chown -R www:www /var/svn/repos/

リポジトリアクセス用のパスワードファイルを作成。

[root@vm conf]# /usr/local/apache/bin/htpasswd -c /var/svn/conf/.htpasswd test
New password:
Re-type new password:
Adding password for user test

apacheの設定を変更し、リポジトリアクセス可能にする。

[root@vm subversion-1.6.12]# cd /etc/httpd/conf/
// 念のためバックアップ
[root@vm conf]# cp -p httpd.conf httpd.conf.20100905
[root@vm conf]# vi httpd.conf

// 実行者を変更
- User daemon
- Group daemon
+ User www
+ Group www

// 末尾にsvn用の設定を追記
+ <Location /svn/repos>
+ DAV svn
+ SVNPath /var/svn/repos
+ AuthType Basic
+ AuthName "SVN Basic Auth"
+ AuthUserFile /var/svn/conf/.htpasswd
+ Require valid-user
+ </Location>

これで準備は完了。あとはapacheを起動し、

[root@vm conf]# /usr/local/apache/bin/apachectl start

終了。

http://localhost/svn/repos

にアクセスすればbasic認証の後にリポジトリの確認が可能のはず。

かなり端折ったが、これでうまくいく!はず!