【centos6系统下配置svn服务器】centos6系统下配置svn服务器的步骤

时间:2019-08-21  来源:Perl  阅读:

一,安装必须的软件包.

yum install subversion (SVN服务器)
mysql-server (用于codestriker)
httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)
sendmail (用于配置用户提交代码后发邮件提醒)
wget gcc-c++ make unzip perl* (必备软件包)
ntsysv vim-enhanced (可选)

二,基本的SVN服务器配置

1,新建一个目录用于存储SVN所有文件(这个文件代表这svn服务器的根目录)

# mkdir /home/svn

2,新建一个版本仓库

# svnadmin create /home/svn/project(project表示仓库目录)

3,初始化版本仓库中的目录  

# mkdir project project/server project/client project/test (建立临时目录)
# svn import project/ file:///home/svn/project -m "初始化SVN目录"
# rm -rf project (删除临时建立的目录)
(这里临时建立的目录我们可以认为是我们将要导入到svn中的工程的目录
,这个工程不是直接放到svn服务器的仓库中的,而是通过import来进行导入,
这里的-m参数表示我们commit的时候的备注信息,project/ 表示我们要导入
的工程的目录,file:///home/svn/project表示我们导入的工程的目的路径)
###############下面是关于svn文件的配置,主要是人员权限的分配,
   切记:配置文件中行首不能出现空格。###############

4,添加用户

要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了,
为了测试,我添加了如下内容:
(示例中的四个用户角色分表表示:工程管理员,服务端人员,客户端人员,测试人员)
[users]
# harry = harryssecret
# sally = sallyssecret
pm = pm_pw
server_group = server_pw
client_group = client_pw
test_group = test_pw

5,修改用户访问策略


([project:/]中表示将要设置权限的目录,相对svn的目录。可以在里面直接添加人员的权限,
 也可以以@群组名来指定权限,[groups]中的群组中人员有多个,以英文,隔开
* = 表示除了上述之外的用户其他的用户具有的权限,这里注意权限的分配具有继承性,
比如根目录的设置了只读性质,会覆盖下层的写入性质,共有三类性质:"r",  "rw",  " ",表示不允许访问。
对于   * = 这块表示anyone,所有的授权用户使用$authenticated,匿名用户使用$anonymous)
/home/svn/project/conf/authz记录用户的访问策略,以下是参考:
[groups]
project_p = pm
project_s = server_group
project_c = client_group
project_t = test_group
  
[project:/]
@project_p = rw
* =
 
[project:/server]
@project_p = rw
@project_s = rw
* =
 
[project:/client]
@project_p = rw
@project_c = rw
* =
 
[project:/doc]
@project_p = rw
@project_s = rw
@project_c = rw
@project_t = rw
* =
以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录.

6,修改svnserve.conf文件,让用户和策略配置升效.

(anon-access表示未授权用户,auth-access表示授权用户,passwor-db填写密码数据文件的路径
,因为一个svn服务器中可以设置不同的仓库,对于每一个仓库需要定义不同的用户密码
,所以这里采用指定的目录,auth-db同理,一般位本仓库中conf的几个文件,权限分为三种:
  write,read,none)
svnserve.conf内容如下:
[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz

7,启动服务器

# svnserve -d -r /home/svn
(这里我需要强调下:启动服务器的路径问题,如果使写到/home/svn下,就意味着回头的地址svn://host/ 代表的目录就是/home/svn。
现在比如我的/home/svn目录下加了两个仓库,project1,project2,那么我想访问的时候就需要填入svn://host/project1这种形式。
但是如果在启动的时候直接写成了svnserve -d -r /home/svn/project1,那么访问的时候直接就访问根目录svn://host/就行了,
至于目录下的权限相对应的是一样的,只不过我们可能在启动的时候将svn根目录映射的实际目录不一样。
博主之前就是因为这个问题卡住了。推荐使用/home/svn这种,方便我们管理多个仓库。)

8,测试服务器(命令行下检出:svn checkout 仓库路径)

# svn co svn://192.168.60.10/project
Authentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for "root":
Authentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: server_group
Password for "server_group":
svn: Authorization failed ( server_group没用根目录的访问权 )
# svn co svn://192.168.60.10/project
Authentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for "root":
Authentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: pm
Password for "pm":
Aproject/test
Aproject/server
Aproject/client
Checked out revision 1.  ( 测试提取成功 )
# cd project/server
# vim main.c
# svn add main.c
# svn commit main.c -m "测试一下我的C程序,看什么看,不行啊??"
Adding main.c
Transmitting file data .
Committed revision 2.  ( 测试提交成功 )

【centos6系统下配置svn服务器】centos6系统下配置svn服务器的步骤

http://m.bbyears.com/jiaocheng/63397.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新