1实验拓扑

svn server(subversion)192.168.1.126

svn client(TortoiseSVN):下载地址(http://tortoisesvn.net/downloads.html

 

2准备yum

#cd /etc/yum.repos.d/
#wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

3安装软件包

#yum install httpd httpd-devel mod_dav_svn subversion mod_ssl

4查看测试是否安装svn模块

# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
 
# svn --version

CentOS6.4 apache+svn_svn 

5、创建目录,初始化

# mkdir -p /data/svn/repo
# cd /data/svn/repo
# svnadmin create peace////执行命令后,自动在peace目录下建立多个文件,分别是conf、db、format、hooks、locks、README.txt。
# chown -R apache.apache peace

6、配置subversion.conf

加载mod_dav_svn模块,一般apache2己正常加载这两个模块  apache需要加载mod_dav_svn模块。如果apache是按照与预设目录安装的,mod_dav_svn模块应该会安装在apache安装位置(默认路径是/etc/httpd/)的 modules子目录内。同时apache的配置文件httpd.conf(默认路径为etc/httpd/conf/)中已经使用LoadModule指令加载了该模块(如果没有,手动添加)注意这个指令必须出现在其它的Subversion相关指令之前。还要加载mod_authz_svn.so模块。

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
 
……
<Location /repos>
   DAV svn
   #SVNParentPath /data/svn/repo//后面会解释为什么不用这个
   SVNPath /data/svn/repo/peace
   SVNListParentPath on
 
      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /data/svn/passwdfile
      AuthzSVNAccessFile /data/svn/accessfile
      Require valid-user
</Location>

7、添加用户密码

# htpasswd -c /data/svn/passwdfile peace//创建用户密码,第一用-c,只有添加如下
# htpasswd  /data/svn/passwdfile test

8重起Apache

#service httpd restart

9下面创建权限访问控制文件,可自行查看具体权限

# vi /data/svn/accessfile
[/]
*=rw
 
[groups]
dev=peace
test=test
 
[repos:/]
@test=r
@dev=r
 
[repos:/test]
@test=rw
*=

10、启动svn

#svnserver -d

11、客户端登陆查看

CentOS6.4 apache+svn_apache_02 

 

报错解决:

You don't have permission to access /repos on this server(SVN)

 

解决方法:

subversion.conf内容SVNParentPath改为SVNPath

 

内容SVNParentPath没改为SVNPath

所以会把档案库当做根目录一直出现上述错误