阿里云ECS服务器centOs7.2系统SVN服务器搭建并实现提交自动同步到web服务器

技术探讨  2018-04-08 22:47   7893 阿里云 ECS SVN

* 阿里云ECS服务器需把端口 3690(svn默认端口加入安全组安全策略)

 blob.png

第一步,安装SVN

[plain]

yum install subversion  

  1. yum remove subversion(卸载) 

查看版本信息  svnserve --version 


第二步,创建SVN版本库

[plain]

mkdir -p /svndir/project

第三步,创建版本库

[plain]

svnadmin create /svndir/project

执行完上面命令后会生成如下文件,说明版本库创建成功:

blob.png

第四步,进入conf目录配置该版本库的文件:

authz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件

第五步,配置passwd,语法:用户名=密码,例:

[plain]

[users]  

  1. test1 = 123456   

  2. test2 = 123456  

第六步,配置authz用户权限文件,rw是有读写权限:

[plain]

[groups]  

  1. # harry_and_sally = harry,sally  

  2. # harry_sally_and_joe = harry,sally,&joe  

  3. admin = test2  

  4.   

  5. [/]  

  6. test1 = rw  

  7. [/adminfile]

  8. @admin = rw 

第七步,配置svnserve.conf文件,打开下面几个注释即可:

[plain]

anon-access = read #匿名用户可读  

  1. auth-access = write #授权用户可写  

  2. password-db = /svndir/project/conf/passwd #使用哪个文件作为账号文件  

  3. authz-db = /svndir/project/conf/authz #使用哪个文件作为权限文件  

  4. realm = /svndir/project #认证空间名,版本库所在目录  

第八步,启动SVN版本库,完成:

启动SVN:

[plain]

svnserve -d -r /svndir/project/

关闭SVN(查看进程PID,然后kill掉):

[plain]

ps aux | grep -i svn  

  1. kill pid号  

防火墙开启3690端口:

编辑防火墙配置文件:

[plain]

vi  /etc/sysconfig/iptables  

增加下面一行

[plain]

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT  

重启防火墙

[plain]

service iptables restart  


第九步,实现自动同步:

首先在服务器上建一个文件夹:

[plain]

mkdir /home/wwwroot/test  

执行check:

[plain]

svn --username test1 --password 123456 co svn://127.0.0.1 /home/wwwroot/test  

在/var/svn/svntest/hook下创建post-commit文件(复制post-commit.tmpl文件修改文件名),文件设置可执行权限,加入以下内容:

[plain]

#!/bin/sh  

  1. REPOS="$1"  

  2. REV="$2"  

  3. WEB_PATH=/home/wwwroot/test 

  4. SVN_USER=test1  

  5. SVN_PASS=123456  

  6. WEB_USER=www  

  7. LOG_PATH=/tmp/svn.log  

  8. echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH  

  9. echo `whoami`,$REPOS,$REV >> $LOG_PATH  

  10. svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH  

  11. chown $WEB_USER.$WEB_USER -R $WEB_PATH  

保存后实现自动同步功能


拓展,创建多项目:

(1): 创建svn仓库路径

[plain]

mkdir  -p  /opt/svn/project1  

  1. mkdir -p   /opt/svn/project2  

  2. svnadmin  create  /opt/svn/project1  

  3. svnadmin  create  /opt/svn/project2  

注意:为了规范:一般在项目目录下再创建,项目代码导入到trunk目录:

[plain]

mkdir  -p   /opt/svn/projec1/trunk  

  1. mkdir  -p   /opt/svn/projec1/tags  

  2. mkdir  -p   /opt/svn/projec1/branches  

项目2操作和一类似。

其他配置参考以上步骤

(2):启动svn服务

[plain]

svnserve   -d   -r    /opt/svn/  

注意:如果在一台服务器上同时启动多个版本管理,那么启动路径必须是所有项目仓库的根路径:比如
/opt/svn/project1    /opt/svn/project2   ------------------->   /opt/svn/ 


注:转载请注明出处为http://www.sandbean.com/article/51.html。

沙豆网 站长

追求卓越,奋斗不息!

168
文章
9901
点赞

更多文章