环境为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
<Location /repo>
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
</Location>
<Location />
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
</Location>
/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
htpasswd -b accesspwd dyh dengyh 新增用户
现在就可以通过”http://ip/repo″来访问我们的svn服务器了