转载并修改:
环境为centos7
1.首先 看看机器上安装了svn了没有
rpm -qa |grep svn
2.如果没有安装 执行
yum -y install subversion
3.安装好了之后 新建一个svn目录,这里就是建立为一个文件夹;
mkdir /home/svn
4.新建一个版本仓库 ----建立后,可以认为算是一个svn管理的顶层文件夹(如果只有一个的话)
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看好了 不是http 或 https 的开头;
这里从公司的内网访问足够了; 端口默认的是3690
==========================================================================================
下面介绍支持http訪問配置
1 前提条件:
请先关闭防火墙或者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/passwd
AuthzSVNAccessFile /home/svn/authz
Require valid-user
</Location>
如上的粗体文字中,是指定的之前svn://XXXX 访问模式下的,用户密码文件。但是对于http访问方式的,需要进行修改,
http方式和之前的不同,是要加密的;
三 将默认的passwd文件改名,创建htpasswd 格式的用户名密码文件 passwd
mv passwd passwd.default
htpasswd -cm passwd yourname
htpasswd -m passwd myname
authz 文件可以不该,基本一致;
四、 让apache用户对”/home/svn/repo″目录拥有写权限。(之前用的root用户操作的,如下操作直接复制来)
#将用户apache加入root组
usermod -a -G root apache
#让group对/home/svn/repo目录也有写权限
chmod -R g+w /home/svn/repo
五、测试
systemctl start httpd.service ###启动httpd服务;
或
systemctl restart httpd.service ###重启httpd服务;
现在就可以通过”http://ip/repo″来访问我们的svn 服务器了
对于外网的可以通过natapp方式进行内网穿透的方式进行。 该httpd方式默认的80端口;
Linux中的80端口不要被占用;