Centos简单搭建SVN 服务器

来源:互联网 发布:戏曲分类知乎 编辑:程序博客网 时间:2024/06/06 03:51

本机使用系统是centos7,搭建SVN服务,以下步骤mark一下

1. 安装

可以下载安装包进行安装,这里采用yum

$ yum install subversion

测试是否安装成功:

$ svnserve --versionsvnserve, version 1.7.14 (r1542130)   compiled Nov 20 2015, 19:25:09Copyright (C) 2013 The Apache Software Foundation.This software consists of contributions made by many people; see the NOTICEfile for more information.Subversion is open source software, see http://subversion.apache.org/The following repository back-end (FS) modules are available:* fs_base : Module for working with a Berkeley DB repository.* fs_fs : Module for working with a plain file (FSFS) repository.Cyrus SASL authentication is available.

2. 服务配置

2.1 建立svn版本库目录

$ cd /usr/local$ mkdir -p svn/repos1$ svnadmin create /usr/local/svn/repos1

2.2 修改配置文件

可以看到conf目录下有authz、passwd、svnserve.conf三个文件

$ ll svn/repos1/conf/total 12-rw-r--r-- 1 root root 1112 May 27 11:16 authz-rw-r--r-- 1 root root  354 May 27 11:35 passwd-rw-r--r-- 1 root root 3112 May 27 11:30 svnserve.conf

2.2.1 修改版本库配置文件

$ vi svn/repos1/conf/svnserve.conf# 打开以下几个注释anon-access = none #匿名用户可读auth-access = write #授权用户可写password-db = passwd #使用哪个文件作为账号文件authz-db = authz #使用哪个文件作为权限文件realm = /usr/local/svn/repos1 # 认证空间名,版本库所在目录

2.2.2 配置访问的用户

$ vi svn/repos1/conf/passwd...[users]# harry = harryssecret# sally = sallyssecret# 添加用户与密码,这里添加user1,密码为pwd1;user2,密码为pwd2user1 = pwd1user2 = pwd2

2.2.3 配置用户访问策略

[mark] : 用户组格式:[groups] <用户组名>=<用户1>,<用户2> 其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
根目录是svnserve启动时指定的,我们指定为/usr/local/svn。这样,/就是表示对全部版本库设置权限。
repos1:/表示对版本库1设置权限。
repos2:/abc表示对版本库2中的abc项目设置权限。
repos2:/abc/aaa表示对版本库2中的abc项目的aaa目录设置权限。
权限主体可以是用户组、用户或,用户组在前面加@,表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

$ vi svn/repos1/conf/authz...# [repository:/baz/fuz]# @harry_and_sally = rw# * = r# 这里配置的为repos1版本库设置权限,user1有可读可写权限,user2有只读权限,其它用户均无任何权限,最后一行*=很重要不能少[repos1:/]user1 = rwuser2 = r*=

3. 启动SVN服务

$ svnserve -d -r /usr/local/svn  # 不指定端口则使用3690$ ps -ef |grep svnserve# 成功后root     31035     1  0 11:38 ?        00:00:00 svnserve -d -r /usr/local/svn

或者指定用户和端口启动:

su -svn -c "svnserve -d --listen-port 4600 -r /usr/local/svn"

其中:
su -svn表示以用户svn的身份启动svn
-d表示以daemon方式(后台运行)运行
–listen-portlisten-port 4600表示使用4600端口

对于多个代码仓库
我们在启动时也可以用-r选项来指定服务器根目录,但访问时需要写上每个仓库相对于svn根目录的相对路径.
比如,我们有两个代码仓库/usr/local/svn/repos1和/usr/local/svn/repos2,我们用:svnserve -d -r /usr/local/svn 来启动,那么在客户端访问时可以用svn://192.168.x.x/repos1和svn://192.168.x.x/repos2来分别访问两个项目。

4. 注意防火墙

如果启用了防火墙,需要开放相应的端口才能进行访问:

$ vi /etc/sysconfig/iptables# 添加上这段-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT#注意要在这两段之前-A INPUT -j REJECT --reject-with icmp-host-prohibited-A FORWARD -j REJECT --reject-with icmp-host-prohibited# 重启防火墙$ service iptables restart

5. 客户端连接

使用svn客户端工具,或者找一台安装了subversion的进行测试
svn co svn://192.168.xx.xx/repos1
或者通过界面访问svn://…地址能打开便可以知道已经可以正常访问。

0 0
原创粉丝点击