Subversion インストール

yumリポジトリからsubversionをインストール

yum -y install subversion mod_dav_svn

 

リポジトリのディレクトリを作成

mkdir /var/www/svn-repos

svnadmin create /var/www/svn-repos

svnadmin create /var/www/svn-repos/repos

 

リポジトリ用のグループとユーザを作成 

groupadd subversion

chown hoge1:subversion hoge1

chown hoge2:subversion hoge2

 

権限を変更しておく 

chmod -R 775 /var/www/svn-repos

chown -R apache:subversion /var/www/svn-repos

 

ユーザ名とパスワードを設定 

vim /var/www/svn-repos/conf/passwd

hoge1 = hoge1

hoge2 = hoge2

 

 モジュールを有効にする

vim /etc/httpd/conf/httpd.conf

 // 以下のコメントをはずします。

#LoadModule dav_module modules/mod_dav.so

#LoadModule dav_fs_module modules/mod_dav_fs.so

              ↓

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

 

 

subversion設定ファイルを作成

 vim /etc/httpd/conf.d/subversion.conf

<Location /svn-repos>

   DAV svn

   SVNPath /var/www/svn-repos

#   SVNParentPath /var/www/svn-repos

 

   Order allow,deny

   Allow from all

 

   AuthType Basic

   AuthName "Subversion Repository"

   AuthUserFile /var/www/svn-repos/conf/htpasswd

   Require valid-user

   AuthzSVNAccessFile /var/www/svn-repos/conf/authz

 

   # Limit write permission to list of valid users.

   <LimitExcept GET PROPFIND OPTIONS REPORT>

      Require valid-user

      # Require SSL connection for password protection.

      # SSLRequireSSL

 

      #AuthType Basic

      #AuthName "Authorization Realm"

      #AuthUserFile /h/to/passwdfile

      #Require valid-user

   </LimitExcept>

</Location>

 

 subversion設定ファイルを作成

 vim /var/www/svn-repos/conf/svnserve.conf

[general]

anon-access = read

auth-access = write

 

 subversionユーザの権限設定

 vim /var/www/svn-repos/conf/authz

[/]

hoge1 = rw

hoge2 = rw

 

 Apacheの再起動

service httpd configtest

service httpd restart

 

 ユーザ認証ファイル作成

htpasswd -c /var/www/svn-repos/conf/htpasswd hoge1

htpasswd  /var/www/svn-repos/conf/htpasswd hoge2

chown apache:subversion /var/www/svn-repos/conf/htpasswd

 

リポジトリにsampleコンテンツの trunk / branches /  tags フォルダを作成

svn mkdir -m "create" file:///var/www/svn-repos/sample

svn mkdir -m "create" file:///var/www/svn-repos/sample/trunk

svn mkdir -m "create" file:///var/www/svn-repos/sample/branches

svn mkdir -m "create" file:///var/www/svn-repos/sample/tags

 

post-commitの設定 (svn update)

cp /var/www/svn-repos/hooks/post-commit.tmpl /var/www/svn-repos/hooks/post-commit

chmod 774 /var/www/svn-repos/hooks/post-commit

vim /var/www/svn-repos/hooks/post-commit

(例.1)

*******************************************************

#!/bin/sh

SVNUSER=hoge1

SVNPASS=hoge1

SVNOPTS="--username ${SVNUSER} --password ${SVNPASS} --non-interactive"

LANG=en_US.UTF-8 /usr/bin/svn ${SVNOPTS} update /var/www/svn_hoge/sample/trunk

/usr/bin/ssh -i /var/www/.ssh/id_rsa apache@192.168.154.128 'cd /var/www/work/ && LANG=en_US.UTF-8 svn update'

rsync -a -e "/usr/bin/ssh -i /var/www/.ssh/id_rsa" /var/www/svn_hoge/sample/trunk/ apache@192.168.154.128:/var/www/sample/trunk/

*******************************************************

(例.2)

*******************************************************

#!/bin/sh
# POST-COMMIT HOOK

#svn update
if [ -e /var/www/svn-repos/hoge.co.jp/work ];
then
svn update /var/www/svn-repos/hoge.co.jp/work
else
mkdir /var/www/svn-repos/hoge.co.jp/work
svn checkout file:///var/www/svn-repos/hoge.co.jp /var/www/svn-repos/hoge.co.jp/work
fi

#ftp mirror
# -R: ファイルをアップロード
# -X .svn/: .svnファイルはアップしない
# --delete: 削除されたものはアップロード先でも削除する
# --only-newer: 新しいファイルのみ
# --no-perms: パーミションを無視
echo "exit" | lftp -p 21 -u user,passwd -e "mirror -R -X .svn/ --only-newer --delete /var/www/svn-repos/hoge.co.jp/work/trunk /home/hoge/www/contents" hoge.sakura.ne.jp

*******************************************************

 

ViewVC導入

yum -y install yum-plugin-priorities  // CentOS6の場合

yum -y install yum-priorities         // CentOS5の場合

 

vim /etc/yum.repos.d/CentOS-Base.repo

[base]

priority=1

[updates]

priority=1

[extras]

priority=1

 

 

 

// RPMfogeに接続するためのyumコマンド関連ファイルをダウンロードし設定する。

cd /usr/src/redhat/RPMS/i386/

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

rpm -ihv rpmforge-release-0.3.6-1.el5.rf.i386.rpm

 

// RPMforgeからパッケージをインストールする際に署名の警告が出ないように、

// DAGからキー(公開鍵)をインポートする。

// 公開鍵は、/etc/pki/rpm-gpg/ディレクトリにRPM-GPG-KEY-rpmforge-dagとしてインストールされる。

rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

 

// yumコマンドでパッケージを検索する際にRPMforgeを検索するようになり、

// 大量のRPMforgeが検索されてしまうため、検索に優先順位をつけて

// 1.オフィシャルなリポジトリ -> 2.RPMforge リポジトリの順に検索するように設定する。

vim /etc/yum.repos.d/rpmforge.repo

enabled = 0

 

yum -y --enablerepo=rpmforge install viewvc

 

vim /etc/viewvc/viewvc.conf

root_parents = /var/www/svn-repos: svn

address = plus_heureux@yahoo.co.jp

use_localtime = 1

 

vim /usr/share/viewvc/templates/include/header.ezt

// 7行目に追加

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

 

 

vim /etc/httpd/conf.d/viewvc.conf

ScriptAlias /viewvc /var/www/cgi-bin/viewvc.cgi

ScriptAlias /query /var/www/cgi-bin/query.cgi

Alias /viewvc-static /var/www/viewvc

<Location "/viewvc">

        Order deny,allow

        Deny from All

        Allow from 127.0.0.1

        Allow from 192.168.154.

</Location>

 

 

service httpd restart