在工作中總要實用SVN進行版本控制,每次完成後還需要手動打包傳到服務器的web目錄下是在麻煩,於是通過SVN的鉤子配置實現SVN提交後自動同步到web目錄省去打包複雜的麻煩。
一、基本環境
服務器系統: centos6.5
SVN subversion版本: 1.6.11版本 使用yum安裝的 如果需要新版本請編譯源碼安裝
WEB服務器:Apache
二、安裝SVN subversion
1、查看是否安裝過
rpm -ql subversion
2、通過yum安裝
yum -y install subversion
3、查看版本
svn --version
svn, version 1.6.11 (r934486)
compiled Aug 17 2015, 08:37:43
三、配置SVN subversion
1、創建用戶用以TortoiseSVN客戶端連接
useradd -s /sbin/nologin sxfenglei
2、爲用戶設置密碼
passwd sxfenglei
3、防火牆開啓SVN默認端口3390如果使用別的端口請根據自身情況配置
特別聲明在修改前先備份防火牆配置文件,因爲有的時候是動態添加的規則,後期重啓將丟失
vim /etc/sysconfig/iptables
添加一條規則
-A INPUT -p tcp -m tcp --dport 3690 -j ACCEPT
重啓防火牆
service iptables restart
svnadmin create /svnData/testProject
cd /svnData/testProject
會發現SVN生成了項目目錄
conf db format hooks locks README.txt
/
svnData
testProject
conf
authz
passwd
svnserve.conf
db
format
hooks
looks
README.txt
5、配置SVN
5.1配置用戶權限:修改vim /svnData/testProject/conf/authz 在末尾添加 SVN項目目錄和用戶權限 r讀 w寫 rw讀寫
[/testProject]
sxfenglei = rw
5.2配置登錄密碼: 修改vim /svnData/testProject/conf/passwd 增加登錄用戶名和祕密 這個用戶必須是已經在系統中創建的用戶(可以是onlogin級別的用戶)
[users]
# harry = harryssecret
# sally = sallyssecret
sxfenglei=123456
5.3配置SVN: 修改vim /svnData/testProject/conf/svnserve.conf 開啓以下配置
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = 提示描述內容
//使用默認端口啓動
svnserve -d -r /svnData/testProject/
//使用指定端口
svnserve --listen-port 3691 -d -r /svnData/testProject
//查看允許的程序ID
netstat -nultp
//停止運行
kill -9 xxx
7、通過客戶端訪問,在客戶端TortoiseSVN訪問 svn://192.168.1.100/testProject 輸入賬號密碼 到此SVN配置完成。
三、SVN同步到web目錄
主要就是配置SVN的 hooks文件
3.1修改 /svnData/testProject/hooks/post-commit 文件
cd /svnData/testProject/hooks/
cp post-commit.tmpl post-commit
vim post-commit
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn #svn程序
WEB=/www/web/myProject/public_html/test
export LANG=en_US.UTF-8
$SVN update --username xiaolian --password xiaolian029 $WEB
chown -R www:www $WEB
chmod 0755 post-commit
3.3 重啓SVN
netstat -nultp
kill -9 xxxx
svnserve -d -r /svnData/testProject
3.4抽出svn到服務器www目錄
svn checkout svn://114.215.98.96 /www/web/myProject/public_html/