在Apache2.2.4下安装配置Subversion1.4.3

中午吃完饭, 回来配置自己的Droupnir. 对于Droupnir, 计划在上面安装支持Subversion的Trac. 作为自己的项目管理平台和配置管理平台.

一篇先写安装配置Subversion

去Subversion的网站下载最新的Subversion, 我下载的是这个版本:

http://subversion.tigris.org/files/documents/15/36797/svn-1.4.3-setup.exe

因为Droupnir上已经安装好了Apache 2.2.4, 所以我就直接安装Subversion. 我以为一切都会很顺利, 可是…我错了…安装过程中出现了一个错误, 然后Apache就不能启动了! 查了半天Google, 终于知道了原因–最新的Subversion 1.4.3 不支持Apache 2.2.4. 除非自己去Build Apache所需的module.

是又在网上找到了别人build好的module, 虽然有一些已知的问题, 但是应该还好! 这里需要注意, 这个编译好的module是用VC2005sp1编译的, 所以要求使用的Apache也是用VC2005sp1编译, VC2005sp1编译的Apache在这里, 使用这个版本的Apache还需要Visual C++ 2005 Redistributable Package. 安装的时候别忘了看readme哦!

装Subversion后, 他会自动修改Apache的conf. 不过你要是使用上面说的自己编译的Apache的话, 那就要自己去看看是不是在conf中加入了该加入的内容.

后就是把自己的SVN版本库用Apache发布了, 这一步就是配置Apache的conf了, 没有什么特别的, SVNBook里写的很清楚.

果需要权限配置的话, 可以参考这篇帖子, 里面写的很详细!

下面附上我整理的步骤

安装步骤

  • 下载
  • 安装Apache
    • 安装Visual C++ 2005 Redistributable Package
      • vcredist_x86-sp1.exe
    • 安装Apache
      • httpd-2.2.4-win32-x86-ssl.zip
  • 安装Subversion

    • 安装官方SVN
      • svn-1.4.3-setup.exe
    • 安装为Apache 2.2.4编译的Subversion module
    • 用mod_svn_143_apache_224.zip中module目录里的文件替换Subversion/bin目录中的
    • 修改Apache的conf. 路径要正确

      LoadModule dav_module modules/mod_dav.so
      LoadModule dav_svn_module modules/mod_dav_svn.so
      LoadModule authz_svn_module modules/mod_authz_svn.so
      
    • 配置Apache的conf, 来映射svn repository

      • 在上一项配置后面写如下配置语法

        <Location /repos>
        DAV svn
        SVNPath /absolute/path/to/repository
        </Location>
        
      • 如果想支持多个有相同父目录的Subversion版本库, 则使用如下配置语法

        <Location /svn>
        DAV svn
        SVNParentPath /usr/local/svn
        </Location>
        
    • 配置Apache对Subversion版本库目录的访问权限

    • 建立密码文件
      • 在Apache的bin目录中运行”htpasswd -c passwd “(换成你自己的用户名), 按照提示输入两次密码, 会在当前目录下建立passwd文件, 将这个文件复制到根目录
    • 修改Apache的conf

      <Location /svn>
      DAV svn
      SVNListParentPath on
      SVNParentPath d:/svn
      AuthType Basic
      AuthName "Subversion repositories"
      AuthUserFile d:/passwd
      Require valid-user
      </Location>
      
您的支持将鼓励我继续创作