以下使用的命令都是root用户,如果是普通用户前面加sudo
1.安装
使用yum命令直接安装
yum install subversion
测试是否安装成功
svnserver --version
2.创建版本库
创建svn数据目录(默认svn的数据目录在/var/svn),当然也可以自己指定目录
mkdir -p /var/svn
svnadmin create /var/svn/website
如果要删除版本库直接删除文件夹即可
rm -rf /var/svn/website
修改svn配置文件时每行前面不能有空格!否则报错:/svn/weixinelnmpcom/conf/svnserve.conf:19: Option expected
3.修改svn配置文件
vi /var/svn/website/conf/svnserve.conf
配置示例
[general]anon-access = none #控制非鉴权用户访问版本库的权限
auth-access = write #控制鉴权用户访问版本库的权限
password-db = passwd #指定用户名口令文件名
authz-db = authz #指定权限配置文件名
realm = website #指定版本库的认证域,即在登录时提示的认证域名称
4.修改svn用户配置文件
vi /var/svn/website/conf/passwd
配置示例
[users]admin = admin #用户,密码
fuhd = fuhd #用户,密码
test = test #用户,密码
5.修改svn权限控制配置文件
vi /var/svn/website/conf/authz
配置示例
[groups]
admin = admin #admin为用户组,等号之后的admin为用户test = fuhd,test
[website:/] #表示根目录(/var/svn/website),website: 对应前面配置的realm = website
@admin = rw #表示admin组对根目录有读写权限,r为读,w为写
[website:/test] #表示test目录(/var/svn/website/test)
@test = rw #表示test组对test目录有读写权限
6.启动,查看和停止SVN服务
# -d : 守护进程 -r : svn数据根目录
$ sudo svnserve -dr /var/svn #用root权限启动
一定要指定到具体目录的上一级,比如这里必须指定到/var/svn,不能到/var/svn/website,否则登陆时报错 “authorization failed”
查看svn服务
$ ps aux|grep svnserve #默认端口为:3690
7.配置防火墙
防火墙需要打开3690端口
这里以firewall为例,iptables请自行google
firewall-cmd --permanent -add-port=3690/tcp
firewall-cmd --reload
8.关闭SELINUX
不关闭会报错,比如:svn: E204900: Can’t open file ‘/var/svn/website/format’: Permission denied
临时关闭:
setenforce 0
永久关闭:
vim /etc/sysconfig/selinux
修改:
SELINUX = disable