配置Apache svn 服务器

本文参考了这篇文章
http://svnbook.red-bean.com/en/1.0/ch06s04.html

概要:
  • svn (subversion) 是一种开源免费的软件项目源文件版本管理工具
  • svn 服务器是集中管理 svn 容器,并允许 svn 客户端通过http或者远程登录访问 svn 容器的服务器。 
  • 本文介绍在 Mac OS 或者 Cent OS 下建立一个允许客户端通过 http 访问的 svn 务器的方法。

环境:
  • Apache:
    Mac OS X 配置 svn 服务器 - 鬼武者 - FIGHTING FOR GLORY !
  • OS: 
    Mac OS X 10.6 Snow Leopard
    Mac OS X 10.7 Lion
    Cent OS 5.6 Final

预备知识

Mac OS X 对 svn 的兼容:
  • 默认安装了如下 svn 命令行工具
    配置Apache svn 服务器_第1张图片

  • 内置的Apache服务器中预装了 svn 需要的模块 mod_dav.so 和 mod_dav_svn.so  

    其中 mod_dav.so 默认加载,mod_dav_svn.so 需要手动配置加载。后述。

  • 内置 Apache 服务器安装路径:
     /etc/apache2/

关于 WebDAV/DeltaV 协议
  • 这是两个应用层协议,提供svn需要的远程认证,metadata管理,版本管理和配置管理功能。
  • Apache 2.0 开始通过mod_dav模块支持这两个协议。

关于在 Mac OS X 内置的 Apache 中安装模块
  • 内置的 Apache 存放模块文件的位置(和通常安装的Apache不同)
    /usr/libexec/apache2/
  • 本次需要的模块已经存在,所以未进行另外安装。

配置http访问

创建svn容器 
  • 在自己的用户文件夹下创建一个容器 /Users/nutcracker/repository
    Mac OS X 配置 svn 服务器 - 鬼武者 - FIGHTING FOR GLORY !
     
配置 Apache
  • CentOS :
    sudo yum -y install httpd subversion mod_dav_svn
    无需手动编辑Apache配置文件。

  • Mac OS :
    编辑 /etc/apache2/httpd.conf,使 Apache 启动时加载 mod_dav_svn 模块

    mod_dav_svn 加载指令要放在mod_dav加载指令的后面。
    注意需要用root权限编辑,否则无法保存。
    sudo vim /etc/apache2/httpd.conf 

  • 在 httpd.conf 中添加下面指令来告诉 Apache 将所有路径部分以/repos开头的URL交给位于SVNPath下的 DAV provider 来处理。SVNPath 为前面创建的容器的路径。
    <Location /repos>
            DAV svn
            SVNPath /Users/nutcracker/repository
    </Location>

  • 重启 Apache (Mac OS X 有自己的启动方法,参照以前的文章) 
    Mac OS X 配置 svn 服务器 - 鬼武者 - FIGHTING FOR GLORY ! 

测试方法
  • 创建测试项目 
    Mac OS X 配置 svn 服务器 - 鬼武者 - FIGHTING FOR GLORY !
  • 添加到容器
    Mac OS X 配置 svn 服务器 - 鬼武者 - FIGHTING FOR GLORY !
  • 浏览器访问


  • checkout 


  • 配置成功 

Cent OS  Lion 下遇到的问题

  • errcode="13" Could not open the requested SVN filesystem
  • 原因是将容器创建在/home/nutcracker/reposapache没有访问权限。
  • Snow Leopard下将repos文件夹chmod777就可以访问,而CentOSLion不行,chownapache.apache也不行。原因不明。
  • 将容器创建在 /var/www/svn/ 下即可解决。

你可能感兴趣的:(配置Apache svn 服务器)