apache服务器中配置svn - Apache - 服务器之家

服务器之家

专注于服务器技术!
当前位置:首页 > Web服务器 > Apache

apache服务器中配置svn

发布时间:2013-08-17 来源:服务器之家

    总体来说,配置比较简单,先安装Apache http server,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文件。可以看到
# LoadModule dav_module modules/mod_dav.so
    也就是说,apache默认启动不是以webdav方式,去掉#,再下面添加如下两行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
    现在apache启动时会加载上面三个so。
    在文件末尾加上如下内容,下面是比较简单的配置:
<Location /repos>                     # "/repos"是在url上指定的访问路径,客户访问需要键入这个路径。
  DAV svn                             # 声明svn
  SVNPath E:/svn                      # "E:/svn"是服务器上svn的repository的目录。
#  SVNParentPath E:/svn               # 对于一个目录下存在多个工程的情况,可以声明这个变量。
# 在apache中配置svn有两种,可以混合使用,一种是apache自身的认证机制,
# 对进入/repos目录的用户进行统一认证,
# 一种是应用svn的认证,可以深入到目录级别进行权限控制,
# 和svn独立启动时设置权限一样。
### apache auth begin
  AuthType Basic                     
  AuthName "Subversion repository"    # 认证的名字
  AuthUserFile D:/svn_auth_file       # D:/svn_auth_file里面存放的是使用htpasswd -m D:/svn_auth_file user
# 生成的用户名与密码的加密文件。注意,此处的路径不能有空格。
  Require valid-user                  # 声明,必须是有效的用户才可以访问
### apache auth end
### svn auth begin 
  AuthzSVNAccessFile D:/svn_authz     # D:/svn_authz文件是根据%respository%/conf/authz的规则编写,其实就
              # 是svn对用户权限读取的文件格式,mod_authz_svn.so要求的格式。
#  SVNIndexXSLT "d:/svnindex.xsl"     # d:/svnindex.xsl是用户可以自定义的显示模版,设计好模板,html上的显
          # 会更漂亮。
 # authentication if necessary.
  Satisfy Any             # 字面翻译是:都要满足,是声明用户要满足条件   
  Require valid-user                  # 声明,必须是有效的用户才可以访问
### svn auth end 
</Location>
    这时,通过 http://serverip/repos 可以根据设定好的权限进行访问,访问时可以看到最新的版本号,如何让http访问的时候也可以像cvs那样看到更多的内容,老的版本,比较信息呢?可以使 用viewvc来做,原来viewvc支持cvs,现在,也已经开始支持subversion了。
    配置结束了,使用apache启动svn服务其实是加载了svn的库,我们看到,此种方式下,对svn的权限设置不同于svn独立模式的要求,用不上 svn自己的配置,但配置要求都是一样的格式,都是svn的核心认证库modmod_authz_svn.so在决定内容。只是不同的启动方式而已。
from: http://magnetocn.bokee.com/viewdiary.10973859.html