Categories
技术讨论

集成Subversion(SVN)与Apache 2.0.x

前面的blog主要介绍了Trac以及Trac与Apache的集成,下面补充说明一下Subversion与Apache的集成。

1. 下载并安装程序

  • Apache-2.0.59,在目前win32平台下,建议暂时不要选择Apache2.2.x,因为包括SVN在内,很多Module都还没有支持Apache2.2的版本
  • svn-1.4.3,执行安装程序会自动的配置apache的配置文件httpd.conf。如果没有自动配置成功,需参考后面说明手动配置。
  • TortoiseSVN,这是一个可选软件,和本主题没有关系。但是如果在win32平台下开发,还是非常推荐使用这个SVN扩展。

2. 配置httpd.conf

  • 将Subverion安装目录下的mod_dav_svn.so和mod_authz_svn.so复制到Apache的modules目录
  • 打开httpd.conf,增加如下两行:
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
  • 注意,由于dav_svn需要dav_module的支持,所以要确保下面这一行没有被注释,并且保证在dav_svn之前加载:
    LoadModule dav_module modules/mod_dav.so

3. 设置SVN的目录

  • 在httpd.conf里面加入下面一段内容
    <Location /svn>
    DAV svn
    SVNParentPath “F:/svn”
    </Location>
  • 在这里使用的是SVNParentPath指令,这样”F:\svn”目录下的所有svn仓库都可以被访问,如http://localhost/svn/proj1
  • 如果只单一的设定某一仓库,则可以使用SVNPath指令:
    <Location /svn/proj1>
    DAV svn
    SVNPath “F:/svn/proj1”
    </Location>

4. 访问控制,SVN的访问控制有两种方式,这里介绍使用apache的访问控制方式

  • 建立password文件
    F:\apache\bin>htpasswd -cp F:\apache\conf\trac.passwd test
    New password: ****
    Re-type new password: ****
    Adding password for user test
    在这里使用了-p参数,是以明文的方式保存密码。win平台下默认是MD5加密,但是在配置Trac的时候总提示密码文件格式不对,有谁知道如何解决,请指教。
  • 在httpd.conf中增加访问控制,如:
    <Location /svn>
    DAV svn
    SVNParentPath “F:/_SVNData”AuthType Basic
    AuthName “Trac”
    AuthUserFile F:\apache\conf\trac.passwd
    Require valid-user</Location>
  • 这样访问http://localhost/svn/proj1时就会弹出标准的http密码对话框。

2 replies on “集成Subversion(SVN)与Apache 2.0.x”

在本地这么设置的确可以成功,但是在局域网里将访问路径http://localhost/svn/proj1中的localhost改为局域网一台机子时却不可以了,错误是 页面无法显示 。。。。不知道怎么办,请多指教!郁闷中。。。。

这个应该是你web服务器的配置问题。检查一下配置(比如webserver所listen的ip和端口)以及服务器的防火墙是否允许外部访问。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.