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
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、客户端登陆查看
报错解决:
You don't have permission to access /repos on this server(SVN)
解决方法:
subversion.conf内容SVNParentPath改为SVNPath
内容SVNParentPath没改为SVNPath
所以会把档案库当做根目录一直出现上述错误