centos下搭建SVN服务器 并且自动发布代码

1:安装,安装其实非常简单
#yum install subversion
测试是否安装成功
#svnserve --version
如果显示了版本信息则表示安装成功

2:配置
svn配置建立svn版本库目录可建多个:
新建一个版本库目录 名字为repos
#mkdir -p /opt/svndata/repos
建立svn版本库:
#svnadmin create /opt/svndata/repos
修改svn版本库配置文件版本库:
# vim /opt/svndata/repos/conf/svnserve.conf

内容修改为:
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/passwd.conf
authz-db = /opt/svn/conf/authz.conf
realm = repos
注重:对用户配置文件的修改立即生效,不必重启svn。

#vim /opt/svn/conf/passwd.conf
[users]
username = password
这里是配置用户名与密码

配置svn用户访问权限:
# vim /opt/svn/conf/authz.conf
注重:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
[groups]
= ,
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svndata,[/]就是表示对全部版本库设置权限。
[repos:/] 表示对版本库repos设置权限
[repos2:/abc] 表示对版本库repos2中的abc项目设置权限
[repos2:/abc/aaa] 表示对版本库repos2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
admin = alan
[/]
@admin = rw
[repos1:/abc/aaa]
king = rw
[repos2:/pass]
king =
svn 配置完毕。

启动svn建立启动svn的用户
# useradd svn
# passwd svn
根据提示,为用户svn设置密码
允许用户svn访问版本库:
# chown -R svn:svn /opt/svndata
启动svn
# su – svn -c ”svnserve -d -r /opt/svndata“
注意:有时候这个命令执行不成功是因为你直接复制造成的,把那两个双引号改为英文的双引号就行了
其中:
su – svn表示以用户svn的身份启动svn
-d表示以daemon方式(后台运行)运行
-r /opt/svndata指定根目录是/opt/svndata

好SVN已经启动了,你可以通过svn://ip地址/repos 这种方式来访问了

接下来就是如何将SVN中的代码同步到WEB根目录了
其实很简单,只要写个脚本定时checkout就行了
下面就来写这个脚本
#vim tongbu.sh

#!/bin/sh 
while true 
do 
svn checkout svn://127.0.0.1/repos   >/dev/null   2  >&  1 
sleep   5 
done

其中svn://127.0.0.1/repos就是你的SVN服务器地址与版本库
然后将这个SH文件放到你的WEB目录,比如/opt/www目录下
然后
#chmod +x tongbu.sh
#./tongbu.sh
这时候会让你输入SVN用户名密码,输入完成这个脚本就会每5秒钟同步一次,但是他还不是在后台运行,只要你退出 这个脚本就停止了
那么先ctrl+c停止,然后用
#nohup ./tongbu.sh &
让他去后台运行,这样就OK拉

另外一个要说的是,有时候发现你的SVN连不上,也许是因为端口被防火墙墙掉的缘故
SVN默认端口为3690 你可以去iptable里面将他开放

你可能感兴趣的:(centos下搭建SVN服务器 并且自动发布代码)