使用Apache访问svn版本库
1. 关于mod_dav_svn模块
关于svn的安装与配置参考http://hi.baidu.com/1024114660/blog/item/83cfffc6fe904bccd10060a4.htm
这里只介绍如何使用apache访问版本库
Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。
由于Subversion需要版本化的控制,因此标准的HTTP协议不能满足需求。要让Apache与Subversion协同工作,就要使用WebDAV(Web-based Distributed Authoring and Versiong)Web分布式创作和版本控制协议。WebDAV是HTTP 1.1的扩展,关于WebDAV的规范和工作原理,可以参考IETF RFC 2518。
mod_dav_san模块就是作为Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。
2. 创建 SVN 仓库
$ cd /home/dxk
$ mkdir svn
$ cd svn
$ svnadmin create baidu
3. 配置apache
使用命令安装apt-get install libapache2-svn
配置apache http.conf
LoadModule dav_module modules/mod_dav.so 加载mod_dav模块
LoadModule dav_svn_module modules/mod_dav_svn.so 加载mod_dav_svn模块
默认情况下这两个模块会自动加载,他们放在/etc/apache2/ mods-enabled中,关键是下边的一个,把这个配置到http.conf中
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so 加载mod_anthz_svn模块
4. 通过 WebDAV 协议访问
通过 WebDAV 协议访问 SVN 文件仓库,要配置Apache服务器。加入下面的代码片段到 /etc/apache2/http.conf 或者/etc/apache2/mods-enabled/dav_svn.conf中
<Location /svn>
DAV svn
SVNPath /home/dxk/svn/baidu
#SVNParentPath /home/dxk/svn 开始我用的这个,但是不行不知为何,只有输入http://localhost/svn/baidu时才可用
AuthType Basic
AuthName "Subversion Repository" 版本库验证时的提示信息
AuthUserFile /home/dxk/passwd/svn_passwd身份验证,这里保存着用户的密码
# <LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
# </LimitExcept>
</Location>
如果需要用户每次登录时都进行用户密码验证,将<LimitExcept GET PROPFIND OPTIONS REPORT>与</LimitExcept>两行注释掉。
5. 创建密码文件
htpasswd -c /home/dxk/passwd/svn_passwd username
htpasswd /home/dxk/passwd/svn_passwd username2 添加第二个用户
6. 各项配置完成后,重启apache
访问http://localhost/svn出现下面的界面
输入用户名密码后
如果你的没有出现可能是你没有设置/etc/dxk/svn目录的访问权限,使用chmod命令让目录有读取权限即可