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コマンド関連ファイルをダウンロードし設定する。
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