环境:
svnserve, version 1.7.14,CentOS 7
摘要说明:
svn服务器往往是在window系统下使用VisualSVN搭建服务器;本篇文章主要讲述在liunx下如何搭建svn服务器及相关授权管理和http访问设置;
步骤:
1.搭建SVN服务器
a.安装SVN服务
使用yum命令安装svn服务:
yum install subversion
查看是否安装成功:
svnserve --help
b.创建repository
创建repository目录:
mkdir -p /home/svn/svnrepos
使用svnadmin命令创建repository:
svnadmin create /home/svn/svnrepos
打开该目录查看目录结构:
cd /home/svn/svnrepos
ls
conf db format hooks locks README.txt
2.创建账户及授权
a.创建用户
在上述目录下通过编辑/conf/passwd来添加用户:
vi /conf/passwd
cc=111111
即创建好用户cc密码为111111
b.用户授权
通过编辑/conf/authz来进行用户授权:
vi /conf/authz
[/]
cc=rw
即授权用户cc读写权限:rw-读写;r-只读;
[/]是授权根目录,
其他可参考authz.config文件:
[groups]为组定义,可以在该组下加很多用户,以,分割,
但是该用户数据必须在/homd/svn/conf/pwd.conf中定义好,
[/]表示根目录以下的权限定义
[repos1:/]表示仓库下的权限定义
如果要分项目,则以此规则类推:
如:[repos1:/aaa]则表示仓库下的aaa项目的权限定义。
@admin表示admin这个组下的用户权限。
user1=r表示user1这个用户的权限。
c.svn配置
通过编辑/conf/svnserve.conf来进行用户授权,可将下面几个选项根据情况设置:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /home/svn/svnrepos # 认证空间名,版本库所在目录
3.启动svn
通过命令svnserve -d -r启动svn服务:
svnserve -d -r /home/svn/svnrepos
停止svn服务:
killall svnserve
svn默认端口为3690;
阿里云可通过设置该端口对外即可访问;其他服务器可通过设置防火墙开启访问:
vi /etc/sysconfig/iptables-config
-A INPUT -i eth0 -p tcp -m tcp --dport 3690 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3690 -j ACCEPT
保存配置,重启防火墙:
service iptables save
service iptables restart
但此时只能够通过svn://ip访问;
4.配置Apache
a.安装apache及module
安装apache(httpd):
yum install httpd
安装必备组件:
yum install mod_dav_svn
yum install mod_authz_svn
b.创建加密授权
创建加密授权(因上述svn的授权未加密,如httpd的授权不符):
先创建授权文件
touch /home/svn/svnrepos/conf/accesspwd
再创建用户,创建用户后重复输入密码:
htpasswd /home/svn/svnrepos/conf/accesspwd xx
c.配置代理
配置https代理文件:
touch /etc/httpd/conf.d/subversion.conf
使用vi命令写入:
<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn/
AuthType Basic
AuthName "Subversion repos"
AuthzSVNAccessFile /home/svn/svnrepos/conf/authz
AuthUserFile /home/svn/svnrepos/conf/accesspwd
Require valid-user
</Location>
启动svn:
service httpd restart
使用http://xxx.xxx.xxx.xxx/svn/访问