SVN在centos6.5上的搭建


一. 安装

在centos上安装svn非常简单,我们直接使用yum方式进行安装即可,命令如下:

yum -y installinstall subversion httpd mod_dav_svn mod_perl mod_ssl openssl



二. 配置

2.1 创建svn仓库

首先,我们来新建一个max目录用于存储svn仓库,如下:

mkdir -p /data/max

现在我们来创建第一个svn仓库test1,使用如下命令:

svnadmin create/data/max/test1

 

现在,我们再来创建第二个svn仓库test2,使用如下命令:

svnadmin create/data/max/test2

 

2.2svn仓库权限配置

svn仓库创建完毕,我们就可以配置svn仓库的访问权限。

svn仓库权限,我们可以进行单独配置,也可以进行统一配置。考虑实际情况,一般会有多个svn仓库,所以我们进行统一配置。

首先,我们创建用于管理所有仓库帐号密码、权限控制等的目录svndata,如下:

mkdir -p/data/svndata/

 

2.2.1 创建svnserve.conf文件

接下来我们来创建svn仓库权限的总控制文件svnserve.conf,如下:

 

vi/data/svndata/svnserve.conf

 

[general]

 

#未鉴定的用户无权限访问该版本库

 

anon-access = none

 

#鉴定后的可读写版本库

 

auth-access = write

 

#使用的密码文件是同级路径的passwd文件,即是/data/svndata/passwd

 

password-db = passwd

 

#使用的权限控制文件是同级路径的authz文件,即是/data/svndata/authz

 

authz-db = authz

 

#realm指定版本库的认证域,即在登录时提示的认证域名称。各个仓库的认证域都可以自定义

 

realm = svndata

 

2.2.2 创建passwd文件

svnserve.conf文件创建完毕后,我们来创建用于保存用户和密码的文件passwd,如下:

 

vi/data/svndata/passwd

 

[users]

 

admin = 123456

 

test1 = 123456

 

test2 = 123456

 

test3 = 123456

 

passwd文件用于存储用户名和密码,其中等号的两边要有一个空格,=前面是用户名和,=后面是密码,密码是明文保存的。

 

2.2.3 创建authz文件

passwd文件创建后,我们开始创建svn仓库的权限控制文件authz。

注意:权限管理的统一思路是:创建多个组,将各个用户加入到各个组,控制各个组的权限。以后对权限管理就维持在组的维度上,否则以人为粒度管理,会死人滴。

 

vi/data/svndata/authz

 

[groups]

 

develop = test1,test2

 

android = test3

 

admin = admin

 

[test1:/]

 

@develop = rw

 

@admin = rw

 

* =

 

[test1:/config]

 

@admin = rw

 

test1 = r

 

* =

 

[test2:/]

 

@develop = r

 

@admin = rw

 

* =

 

 

 

 

现在这个权限控制是admin用户组,对test1和test2仓库具有读写权限。

develop用户组对test1仓库具有读写权限,对test2具有只读权限,并且develop用户组的test1用户对test1仓库下的config目录只读不能写。

android用户组对svn所有仓库没有任何访问权限。

 

2.2.4 单独配置svnserve.conf文件

在前面我们说了,要对svn仓库权限进行统一管理。而以上章节中,我们把相关的文件创建完毕后,我们只需要修改每个仓库的svnserve.conf文件,这样就能达到统一管理每个仓库的权限。

1)   修改tset1仓库的svnserve.conf文件,如下:

vi /data/max/test1/conf/svnserve.conf

 

[general]

anon-access = none

auth-access = write

#说明使用总控制的密码文件

password-db = /data/svndata/passwd

#说明使用总控制的权限文件

authz-db = /data/svndata/authz

realm = test1

 

2)   修改test2仓库的svnserve.conf文件,如下:

vi/data/ilanni/ilannitest/conf/svnserve.conf

 

[general]

anon-access = none

auth-access = write

#说明使用总控制的密码文件

password-db = /data/svndata/passwd

#说明使用总控制的权限文件

authz-db = /data/svndata/authz

realm = test2

 

3)   到此有关svn仓库权限配置已经完毕。

 

三、使用svn协议访问

svn搭建与配置完毕后,我们现在来访问svn。svn的访问方法有几种,在此我们只介绍最常使用的三种。先来介绍使用svn协议访问的方法。

启动svn,使用如下命令:

        svnserve -d -r /data/max/

svn协议使用tcp的3690端口,所以要在防火墙内添加相应的端口放行。

               vi /etc/sysconfig/iptables

 

停止svn,命令如下:

        killall svnserve

    windows系统使用TortoiseSVN客户端来进行检出测试。

 

四、使用http访问

 

要使用http访问svn服务器,我们需要配置apache服务,无论是使用http还是https访问svn,passwd文件都是通过htpasswd命令创建。

在centos上配置apache与svn集成,我们只需要修改apache的配置文件subversion.conf即可。

1)   subversion.conf修改内容如下:

        vi /etc/httpd/conf.d/subversion.conf

 

LoadModule dav_svn_modulemodules/mod_dav_svn.so

LoadModule authz_svn_modulemodules/mod_authz_svn.so

<Location /repos>

   DAV svn

SVNParentPath/data/max

#一定要放在这行下面,否则会出现权限混乱的现象

AuthzSVNAccessFile/data/svndata/authz

   AuthType Basic

   AuthName “AuthorizationRealm

AuthUserFile/data/svndata/passwd

#告诉apache在authfile中所有的用户都可以访问。 如果没有它,则只能第一个用户可以访问新建库。

Requirevalid-user

</Location>

 

2)   subversion.conf文件修改完毕后,我们要重新创建svn的用户和密码文件passwd,但是passed文件我们要使用apache的工具htpasswd进行创建。如下:

htpasswd -cm/data/svndata/passwd admin

htpasswd命令参数中-c是创建passwd文件,-m是使用md5加密。

passwd文件创建完毕后,我们再来添加test1和test2用户,使用如下命令:

htpasswd -m/data/svndata/passwd test1

htpasswd -m/data/svndata/passwd test2

htpasswd -m/data/svndata/passwd test3

3)   passwd用户和密码添加完毕后,然后我们在修改/data目录属性,如下:

chown apache:apache-R /data/

4)   以上配置完毕后,我们来重启apache,使用如下命令:

/etc/init.d/httpdrestart

5)    这时如果用客户端来检出,会出现用户和密码验证不过去的问题,这是因为centos的安全机制,只要关闭selinux就可以解决,命令如下:

vi/etc/selinux/config

 

 

五.使用https访问

由于https使用的是443端口,所以要先配置防火墙并重启生效,上面已经说过不再重复。

在centos上配置apache与svn集成,我们只需要修改apache的配置文件subversion.conf和ssl.conf即可。对于ssl.conf文件,我们使用默认的即可。但是如果我们要使用自己的ssl证书的话,可以修改ssl.conf文件的SSLCertificateFile和SSLCertificateKeyFile选项即可。如果不使用自己的ssl证书的话,保持该文件默认就行了,如下:

vi/etc/httpd/conf.d/ssl.conf

 

我们只需要修改subversion.conf文件,添加SSLRequireSSL选项即可。如下:

vi/etc/httpd/conf.d/subversion.conf

这样就可以通过https来访问svn了。

结束!!!




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值