当前位置: > CentOS > CentOS教程 >

CentOS 7 安装 SVN 服务

时间:2016-06-04 15:30来源:linux.it.net.cn 作者:IT
首先安装svn:

 

使用root账号去登录之后,直接输入命令就行了:yum  install  mod_dav_svn subversion

正常情况下,系统会自动的去下载所需要的数据包,然后活提示你是否立即安装,确认安装就是了

下面开始配置svn,让服务器可以通过svn://的访问方式

1.创建svn服务器根文件夹:

#mkdir  /home/svn

那么以后我的每个项目,如果需要提交到svn服务器上,我都应该放到这个路径下面去了

2.创建一个版本库

现在需要创建一个版本库,名字随便吧,尽量自己看懂哈!

#svnadmin  create  /home/svn/test

然后开始配置svn服务器,我还是比较喜欢用vi编辑器来编写基础文件,我不是玩linux的哈,我做Java开发的,linux就会一点基础的东西!

在这里,需要注意的是,如果svn下面将来会有很多个项目的时候,我的建议是,专门建立一个统一的用户文件和权限文件,我也是这么做的!并且我都是放在svn根目录下,即: /home/svn/

其实在/home/svn/test/conf/路径下已经有了一个名叫passwd的文件了,这个就是一个用户文件,但是我不用他,我单独建立了一个统一管理用户的文件:

新建用户文件:(用vi编辑器就可以)

# vi  /home/svn/svn_passwd

# :wq

对用户文件的内容可以是:(键值对的方式:用户名 = 密码)

[users]

hujie = hujie123

接下来需要配置用户的读写权限,同样的,单独新建一个文件,来管理所有的项目

 

# vi  /home/svn/svn_authz

# :wq

文件的内容一般有这样几个部分:

[aliases]

[groups]                         svn的用户组

admins = hujie               admins用户组下目前只有hujie一个用户,多个用英文逗号隔开

[lfdcwtjxt:/]                    lfdcwtjxt版本库的根目录

@admins =  rw              用户组前面需要加上@符号,rw表示读、写权限

* =                                  其他一切用户连读都不让读

好了,这样单独的用户与权限文件也就建立好了,我们需要在lfdcwtjxt版本库里面去配置让其生效,编辑 /home/svn/lfdcwtjxt/conf/svnserve.conf

[general]

anon-access  =  none                  

auth-access  =  write

password-db  =  /home/svn/svn_passwd                 这就是我建立的统一用户文件

authz-db  =  /home/svn/svn_authz                           我建立的统一的权限文件

3.启动服务

现在启动svn服务,就可以用svn://的方式访问了,建议是直接用下面的方式去启动

#svnserve  -d  -r  /home/svn

然后测试一下:

#svn  co  svn://localhost/test

会提示你输入用户名,密码,就和远程用putty连接远程主机很类似,登录进去就可以看到有关路径和文件信息了,

我之前用的  /etc/init.d/svnserve   restart方式启动,就碰到实际上并没有启动成功的现象,控制台是显示启动ok了,但是运行身份不是root,也导致无法用svn://的方式去访问,出现的错误是:

No repository found in 'svn://localhost/lfdcwtjxt'

这个错误,首先要保证上述的权限文件配置对了,也就是[lfdcwtjxt:/]这个地方

然后就是服务确实启动了,我用第一种方法启动就正常,第二种就出现这个错误了

但是现在还是不能够通过浏览器用http://的访问方式去访问,需要安装httpd

4.安装apache支持

#yum  install httpd httpd-devel

同样,一般都是下载,然后提示是否立即安装,安装即可,

5.这时候也是需要配置的:

第一步是新曾一个httpd的用户(不是svn用户,他们对用户验证是独立的)

#htpasswd   -c   /home/svn/svn_http_passwd   hujie

根据提示,输入密码即可

给httpd添加用户,必须是htpasswd命令,第一次添加需要新建文件,带上 -c参数,以后就不需要了

第二部需要修改一下这个文件/etc/httpd/conf.d/subversion.conf添加如下信息

<Location  /svn>

DAV  svn

#SVNPath   /home/svn/lfdcwtjxt             //如果你只有一个版本库可以用它

SVNParentPath  /home/svn/                 //多个版本库用它,配合SVNListParentPath

SVNListParentPath   on                         //多个版本库的时候可以用他,配合SVNParentPath

AuthType  Basic

AuthName   "Authorization Realm"

AuthUserFile  /home/svn/svn_http_passwd      //不可与svn的用户公用一个文件

AuthzSVNAccessFile          /home/svn/svn_authz     //这个可以与之前的那个权限文件公用

Require   valid-user                                  //需要验证用户

</Location>

上述需要注意的是:/home/svn/svn_http_passwd不应该与svn共同使用一个用户文件,原因是httpd与svn用户都是单独的,前者会对用户文件中的密码进行加密,后者则不会加密,我之前用的就是公用的,然后导致用svn://访问,密码始终都是错误的

<Location  /svn>,那么访问的时候,访问方式就变成了..../svn/lfdcwtjxt了

6.启动httpd服务

service  httpd  restart

然后用浏览器就可以访问了,比如:http://192.168.0,1/svn/lfdcwtjxt

输入用户名和密码即可


 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容