centos7搭建svn,并用http访问

安装必要的rpm包

yum -y install subversion httpd mod_dav_svn

创建svn仓库

mkdir -p /data/svn

svnadmin create /data/svn

chown -R apache: /data/svn

进行selinux相关设置

chcon -R -t httpd_sys_content_t devops

setsebool httpd_unified=1


注:setsebool httpd_unified=1这个设置可以解决这样的错误:Can’t open file ‘/var/lib/svn/devops/db/txn-current-lock’: Permission denied

目录用途说明:

hooks目录:放置hook脚本文件的目录

locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号

conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)

配置svn服务的配置文件svnserver.conf文件

vi /svn/project/conf/svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = /svn/project/conf/passwd

authz-db = /svn/project/conf/authz

realm = My Test Repository #这是个提示信息

保存

添加两个访问用户及口令

vi /svn/project/conf/passwd

[users]
xiaoran.shen = 123456
test1 = 123456
test2 = 123456
保存
注意:对用户配置文件的修改立即生效,不必重启svn服务。
配置新用户的授权文件
vi /svn/project/conf/authz
[groups]
admin = xiaoran.shen,test1
user = test2
[/]
@admin = rw
@user = r

保存

格式说明:

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>

/ 表示对根目录(即/svn/project目录)下的所有子目录范围设置权限;

[/abc] 表示对资料库中abc项目设置权限;

创建一个admin组,组成员包括xiaoran.shen和test1

创建一个user组,成员只有test2;

admin组对目录有读写权限;

单个用户test2有读写权限;

=表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上。

注意:对权限配置文件的修改立即生效,不必重启svn。

启动svn服务

svnserve -d -r /svn/project/

相关文章