centos yum安装配置SVN subversion 并同步web目录

在工作中总要实用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


4、创建SVN项目

 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 = 提示描述内容


6、启动SVN

//使用默认端口启动
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


3.2修改post-commit权限为 0755

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/


3.5 通过客户端提交更新将会自动同步到WEB服务器目录















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章