本节向大家介绍一下Apache SVN配置手记,SVN经过长时间的发展,现在有不少用户已经了解SVN配置问题了,这里我发表一下个人理解,和大家讨论讨论Apache SVN配置,欢迎大家一起来学习。
上午进行了Apache SVN配置,使得用http://的方式也可以访问我的subversion服务了。
总体来说,配置比较简单,先安装Apachehttpserver,down了一下2.0.58的msi版本。安装后打开安装目录下的/modules目录,发现库很全,特别是webdav需要的mod_dav.so在,好了,apache安装结束。同事的2.0.54版本里/modules下面so库没有几个,建议他重新安装2.0.58版。
原理如下,利用apache服务访问svn服务器,在apache服务启动时,加载svn启动库,客户就可以通过webdav的方式访问了。svn启动时需要必须加载的库是mod_dav_svn.so,如果需要对访问的repository进行用户和目录的权限设置,则需要mod_authz_svn.so库。这两个库都在%subversion%/bin目录下,先把这两个文件拷入到%apache%/modules目录下。
物理文件准备完毕,修改%apache%/conf/下面的httpd.conf文件。可以看到
#LoadModuledav_modulemodules/mod_dav.so
也就是说,apache默认启动不是以webdav方式,去掉#,再下面添加如下两行
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
现在apache启动时会加载上面三个so。
在文件末尾加上如下内容,下面是比较简单的配置:
<Location/repos>#"/repos"是在url上指定的访问路径,客户访问需要键入这个路径。
DAVsvn#声明svn
SVNPathE:\svn#"E:\svn"是服务器上svn的repository的目录。
#SVNParentPathE:\svn#对于一个目录下存在多个工程的情况,可以声明这个变量。
#在Apache SVN配置中svn有两种,可以混合使用,一种是apache自身的认证机制,
#对进入/repos目录的用户进行统一认证,
#一种是应用svn的认证,可以深入到目录级别进行权限控制,
#和svn独立启动时设置权限一样。
###apacheauthbegin
AuthTypeBasic
AuthName"Subversionrepository"#认证的名字
AuthUserFileD:\svn_auth_file#D:\svn_auth_file里面存放的是使用htpasswd-mD:\svn_auth_fileuser
#生成的用户名与密码的加密文件。注意,Apache SVN配置时此处的路径不能有空格。
Requirevalid-user#声明,必须是有效的用户才可以访问
###apacheauthend
###svnauthbegin
AuthzSVNAccessFileD:\svn_authz#D:\svn_authz文件是根据%respository%/conf/authz的规则编写,其实就
#是svn对用户权限读取的文件格式,mod_authz_svn.so要求的格式。
#SVNIndexXSLT"d:\svnindex.xsl"#d:\svnindex.xsl是用户可以自定义的显示模版,设计好模板,html上的显
#会更漂亮。
#authenticationifnecessary.
SatisfyAny#字面翻译是:都要满足,是声明用户要满足条件
Requirevalid-user#声明,必须是有效的用户才可以访问
###svnauthend
</Location>
这时,通过http://serverip/repos可以根据设定好的权限进行访问,访问时可以看到最新的版本号,如何让http访问的时候也可以像cvs那样看到更多的内容,老的版本,比较信息呢?可以使用viewvc来做,原来viewvc支持cvs,现在,也已经开始支持subversion了。
配置结束了,使用apache启动svn服务其实是加载了svn的库,我们看到,此种方式下,对svn的权限设置不同于svn独立模式的要求,用不上svn自己的配置,但配置要求都是一样的格式,都是svn的核心认证库modmod_authz_svn.so在决定内容。只是不同的启动方式而已。本节Apache SVN配置讲解完毕。
【编辑推荐】
- Windows下Apache+SVN部署全程跟踪
- 专家指导:Windows2003下如何进行Apache+SVN部署
- 深入剖析Subversion+Apache配置
- Subversion+Apache配置之完美体验
- 重点剖析:Subversion1.4.6+Apache2.2.8服务器如何搭建