linux centos7 svn server 搭建 支持http访问

环境为centos7

1.首先 看看机器上安装了svn了没有 

rpm -qa |grep svn

2.如果没有安装 执行

yum -y install subversion 

3.安装好了之后 新建一个svn目录

mkdir /home/svn

4.新建一个版本仓库

svnadmin create /home/svn/repo

红色部分是版本仓库名 在配置文件中会使用的

5.将你需要放在svn上的工程 放进repo目录中

6.初始化一下你的版本仓库

svn import 需要放到svn上的文件夹/ file:///home/svn/repo -m “版本说明” --username xx --password xx

这里需要注意的是  如果后边不加用户名和密码 可能导致 客户端在使用的时候 update时 不需要输入用户名和密码就可以update

7.添加用户

要添加SVN用户非常简单,只需在/home/svn/ repo /conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
root = 
root123

8.修改用户访问策略

/home/svn/repo/conf/authz记录用户的访问策略,以下是参考:

[groups]
project_p = root

#[project:/] 如果你的仓库下边就一个版本的话 就不需要使用xxx 直接一个斜杠就完事

#[project:/xxx] 如果你的仓库下边有多个版本的话xxx就是那个文件夹的名字

#上边这2个根据自己情况选一个
@project_p = rw

* =

说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!

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

svnserve.conf内容如下:

[general]
anon-access = none
auth-access = write
password-db = /home/svn/repo/conf/passwd
authz-db = /home/svn/repo/conf/authz

10.启动服务器

# svnserve -d -r /home/svn
注意:如果修改了svn配置,需要重启svn服务,步骤如下:

# ps -aux|grep svnserve
# kill -9 ID号
# svnserve -d -r /home/svn

11.测试服务器


# svn co svn://192.168.x.x/
repo

12.到此为止 独立svn服务器就建立好了  

需要注意的是  如果客户端想要使用的话

url地址一定是这个样子的   svn://192.168.x.x/repo看好了  不是htttps的头

如果想要使用http的头的话  需要配置SVN服务器的HTTP支持


下面介绍支持http訪問配置

前提条件:

请先关闭防火墙或者selinux,当然你也可以进行相应的配置,让某些端口通过

我比较暴力,采用关闭处理

systemctl disable firewalld
systemctl stop firewalld

disable是让其不下次开机启动,stop是结束它。

对于selinux

改/etc/selinux/config文件的”SELINUX=enforcing”为”SELINUX=disabled”

然后执行”setenforce 0″不用重启地关闭selinux

一、安装相应的软件

#apache服务器,让我们的svn 服务器支持http协议访问,而不仅是svn://协议
yum install httpd
#apache操作svn模块
yum install mod_dav_svn
二、修改配置文件

修改/etc/httpd/conf.d/subversion.conf(没有则新建),內容为
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

DAV svn
SVNListParentPath on
SVNParentPath /home/svn/repo
AuthType Basic
Satisfy Any
AuthName "Subversion repos"
AuthUserFile /home/svn/accesspwd
AuthzSVNAccessFile /home/svn/authz
Require valid-user
DAV svn
SVNListParentPath on
SVNParentPath /home/svn
AuthType Basic
Satisfy Any
AuthName "Subversion repos"
AuthUserFile /home/svn/accesspwd
AuthzSVNAccessFile /home/svn/authz
Require valid-user
 
 /home/svn/authz文件内容为:
[groups]
testgroup = root

[/]
root=rw
[repo:/]
root=rw

三、创建accesspwd 文件

htpasswd   -c -m /home/svn/accesspwd root
按提示输入两次密码,我们就创建了一个’root’,
四、 让apache用户对”/home/svn/repo″目录拥有写权限。

#将用户apache加入root组
usermod -a -G root apache
#让group对/home/svn/repo目录也有写权限
chmod -R g+w /home/svn/repo
#查看apache用户属于的组 groups apache

五、测试

systemctl start httpd.service

现在就可以通过”http://ip/repo″来访问我们的svn 服务器了

你可能感兴趣的:(Linux)