`

实战SVN For Apache2(一)

阅读更多
引用
http://www.cnblogs.com/Xrinehart/archive/2005/10/27/262759.aspx

SVN最常见的配置模式便是与Apache集成,这样SVN可以采用WebDev协议方式提供服务。主要的好处有:通过Apache以HTTP方式穿透防火墙,便于在互联网环境使用;提供目录的版本控制;纯2进制的文件对比方式等。下面将介绍如何将SVN集成在Apache上。

  1. 准备工作: 

    1. 下载软件:
      1. SVN服务器端程序。到官方网站 的下载二进制安装文件,来到二进制包下载部分  ,找到 Windows NT, 2000, XP and 2003部分,然后选择"this directory",这样我们可以看到许多下载的内容,目前可以下载 svn-1.2.3-setup.exe

      2. TortoiseSVN,客户端程序。TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
        官方网站是TortoiseSVN,下载方式和前面的svn服务器类似,在Download页面的我们选择Official version for Win2k/XP or higher的版本,然后在sourceforge的下载页面选择目前的最高稳定版本的安装文件TortoiseSVN-1.2.5.4719-svn-1.2.3.msi。(注意:TortoiseSVN有一个特殊对VS.Net运行时一个BUG修正的版本,在下载页面有选择:Special version for Win2k/XP or higher: (We provide NO support for this!) uses _svn folders instead of .svn to work around the VS.NET bug with web projects. If you don't use web projects then please use the official version. )

      3. TortoiseSVN的中文语言包,注意这个需要下和客户端程序版本相同的。可以在Download页面内的Language Packs选择下载。

      4. Apache服务器程序。可以到Apache官方网站下载最新版本的Apache,并且SVN必须运行在Apache2以上版本,在下载页面选择Windows的安装包文件apache_2.0.55-win32-x86-no_ssl.msi

      5. AnkhSVN,可选安装VS.Net的SVN插件。有0.5和0.6版本选择,0.6版支持VS2005 Beta2,下载页面

    2. 停止IIS,因为Apache默认安装为80端口,需要关闭IIS避免端口冲突。可以在安装好之后再调整端口。


  2. 开始安装: 

    1. 先安装Apache服务器。在到填写ServerInfo的时候,若机器已经启用了AD,安装程序会自动填写,否则自己手动填写。安装完成之后到安装目录下找到conf目录下的httpd.config文件,搜索Listen,并将Listen后面的80改为8080(或者你希望的端口),然后重新启动Apache服务器,这时可以用http://localhost:8080 来测试是否安装正确。

    2. 再安装SVN服务器,没有什么好说的,一路回车就可以了。(安装SVN时,请确保Apache服务器正在运行状态,安装过程中可能会将Apache关闭,重新启动属于正常现象)

  3. 配置Apache服务器与SVN集成:


    1. 首先将Subversion安装目录bin\下面的两个文件:mod_authz_svn.somod_dav_svn.so复制到Apache安装目录modules\目录下。
    2. 有些文章说需要再修改httpd.conf,并做如下修改:
      找到Apache安装目录下的conf目录,用文本编辑器打开httpd.conf,找到一下两行:

      #LoadModule dav_module modules/mod_dav.so
      #LoadModule dav_fs_module modules/mod_dav_fs.so

      将每行前面的注释符“#”去掉。再在所有LoadModule语句的最后添加一下几行:

      #SVN
      LoadModule dav_svn_module modules/mod_dav_svn.so
      LoadModule authz_svn_module modules/mod_authz_svn.so

      但是我安装完之后发现这个文件已经被做了那些修改,大概是新版的SVN安装程序做了一些优化吧。其实在成功安装SVN之后,Apache服务器已经和SVN初步集成。如图:

      Apache.jpg

      注意下面的状态栏已经是Apache/2.0.55 SVN1.2.3 DAV/2

    3. 建立一个SVN存放文件的目录,我在F盘下创建一个文件夹:F:/SubversionFiles
    4. 接下来我们必须告诉Apache我们的资源库所在的路径,可以通过Location指令来完成这个设置。因为不希望为每个单独的项目都进行单独的设置,所以我们把所有项目都存放在统一的资源库目录,那么可以使用SVNParentPath指令来指定存放所有项目的路径。在httpd.conf文件最后添加下面配置:

      #SVN

      <Location /svn>
          DAV svn
          SVNParentPath "F:/SubversionFiles"
      </Location>

    这样我们就可以通过http://myhost:8080/svn/<项目名> 来访问存放于资源库F:/SubversionFiles中的指定项目。当然有可能你并不希望某个项目提供这样一种访问方式,这时候你可以使用SVNPath为每个项目进行单独的设置,SVNPath的使用方法如下:

        DAV svn
        SVNPath "F:/SubversionFiles/project1"

    同样把这段配置放在httpd.conf最后,重启Apache HTTP服务即可通过http://myhost:8080/svn/project1 来访问project1项目的资源库。

    1. 下面作一个测试:

      1. 到F:\SubversionFiles下建立一个子目录Test,然后到Aapche下的Bin目录下执行svnadmin create F:\SubversionFiles\Test

      2. 打开浏览器输入网址:http://localhost:8080/svn/Test ,应该可以正确访问,但当前该项目下还没有加入任何内容,所以显示为空的

      3. 有一点需要提示的是,现在的访问是完全匿名的,任何人都可以对SVN进行操作。所以我们接下来利用Apache的权限管理功能来对SVN进行用户验证集成

    2. 加入用户身份验证:

      在确定对访问用户的权限控制之前,你必须规划好是对整个资源库中的所有项目还是单独的某一个项目进行统一的身份验证, 也就是我们前面讲到的是使用SVNParentPath还是SVNPath的问题。

      最简单的身份验证方式是使用Basic HTTP Authentication机制,该方式通过用户名和口令对访问用户进行身份验证。我们可以直接通过Apache提供的支持进行设置。Apache提供一个htpasswd工具来管理用户名和口令。接下来我们利用这个工具来添加两个用户。

      在命令行窗口中转到Apache所在的目录,执行下列命令

      说明:创建用户Xrinehart
      输入:htpasswd –c F:\SubversionFiles\svn_auth_passwd Xrinehart
      说明:使用-c参数来创建一个passwd文件
      输出:
      New password: *****
      Re-type new password: *****
      Adding password for user Xrinehart

      再创建用户的时候就不用-c参数,而是用-m参数,因为文件svn_auth_passwd 已经创建。

      打开svn_auth_passwd文件,密码使用MD5加密过了,而且同样的密码加密出来的内容却不相同

      接下来我们必须告诉Apache服务器如何使用这个passwd文件,打开httpd.conf找到刚才我们添加的Location配置的位置,修改如下:

      #
      # SVN


        DAV svn
        SVNParentPath "F:/SubversionFiles"

      # how to authenticate a user
       AuthType Basic
       AuthName "Subversion repository"
       AuthUserFile "F:/SubversionFiles/svn_auth_passwd"
        
        # only authenticated users may access the repository
      Require valid-user


      重新启动Apache HTTP服务器,使用浏览器打开 http://localhost:8080/svn/Test 你将会看到要求登录的对话框,输入你刚设置的用户名和口令即可。

      这样Apache和SVN的集成就基本告成了

分享到:
评论

相关推荐

    Linux下搭建svn+apache

    在Linux环境下搭建Subversion (SVN) 和 Apache 的联合服务是一种常见的版本控制系统部署方案。通过Apache作为前端服务器,可以利用HTTP协议方便地进行SVN仓库的管理和访问。本文将详细介绍在Linux环境下搭建SVN + ...

    svn+apache(httpd) svn离线安装包,需要的自取

    Apache与SVN的集成主要依赖于mod_dav_svn模块,这是一个Apache模块,提供了对SVN的WebDAV/DeltaV支持。安装过程通常包括以下几个步骤: 1. **下载与安装Apache**:首先,你需要下载适用于你操作系统的Apache ...

    再次奉献SVN+apache Server配置

    2. **Apache服务器**:Apache是世界上最流行的Web服务器,它可以被配置为SVN的前端,提供HTTP或HTTPS协议访问,使得用户可以方便地通过Web浏览器进行版本控制操作。 3. **SVN与Apache集成**:配置SVN在Apache上运行...

    SVN + Apache 成功安装部署

    这可能是与SVN集成的一个环境,因为Apache经常被用作PHP应用的Web服务器,并且SVN也可能用于管理PHP项目。 **详细知识点:** 1. **Subversion (SVN)**:SVN是一个开源的版本控制系统,用于跟踪文件和目录的变化,...

    搭建SVN + Apache 服务器

    2. **安装mod_dav_svn模块**:这是Apache服务器用于访问SVN的一个重要模块。 ```bash yum -y install mod_dav_svn ``` 3. **修改serverName配置**: 打开Apache配置文件进行编辑。 ```bash vim /etc/httpd/...

    svn和apache的安装与配置

    而Apache作为一款强大的Web服务器软件,可以很好地与SVN集成,提供基于Web的访问方式。本文将详细介绍如何在Windows环境下安装并配置SVN与Apache,实现一个基本的版本控制服务。 #### 二、SVN的安装与配置 **1. ...

    SVN+apache

    通过将SVN与Apache相结合,可以构建出一个稳定、安全且易于管理的版本控制系统。 本文将详细介绍如何在Windows环境下配置SVN+Apache服务器,并完成基本的权限设置,以便于团队成员可以通过Web方式进行版本库的操作...

    Trac+SVN+Apache安装笔记

    在本文中,我们将详细探讨如何在Windows环境下安装和配置Trac、Subversion(SVN)以及Apache服务器,这对于初学者来说是一份宝贵的指南。首先,确保你已经准备好所有必要的软件包,包括Apache、SVN、TortoiseSVN、...

    svn+apache+ssl整合

    【svn+apache+ssl整合】是指将Subversion(SVN)版本控制系统与Apache HTTP服务器结合,并启用SSL(Secure Sockets Layer)加密通信,以便提供安全的HTTPS访问方式。这一过程通常涉及以下步骤: 1. **环境准备**: ...

    ubuntu linux 配置svn+apache+ssl

    通过新立得软件包管理器搜索并安装Apache2和libapache2-svn。安装完毕后,访问http://192.168.19.3,如果显示Apache的欢迎页面,则表明Apache已经正确安装并运行。 【创建SVN服务器】 4.1 安装SVN 搜索并安装...

    关于svn与Apache整合

    关于svn与Apache整合以及svn一些常用问题的解决,

    Linux+svn+apache配置方法

    ### Linux下配置SVN与Apache实现版本控制及Web访问 #### 概述 本文将详细介绍如何在Linux环境下配置Subversion (SVN) 和 Apache HTTP Server,以实现版本控制功能,并支持通过SVN客户端和Web浏览器两种方式进行...

    svn+apache 配置版本管理详细步骤以及安装包

    在IT行业中,版本控制是团队协作开发不可或缺的一部分,而Subversion(简称SVN)与Apache的结合使用,能实现高效且安全的代码版本管理。本文将详细介绍如何在Windows XP和Windows 7系统下配置SVN服务器,利用Apache...

    linux+svn+apache手順

    Linux 中安装 SVN 和 Apache 服务器的手顺指南 本文档旨在指导读者在 Linux 系统上安装 SVN 和 Apache 服务器,并对安装过程中的关键知识点进行详细解释。 安装 APR 和 APR-Util APR(Apache Portable Runtime)...

    Window下的SVN+APache

    Window下的SVN+Apache搭建往往出现版本不一致造成的搭建错误,apache_2.2.14-win32-x86-openssl-0.9.8k.msi在网站可以下到,但是 Setup-Subversion-1.6.6.msi无法在官网下载,希望对你有帮助

    Cent OS上配置Apache2 + SVN

    Cent OS上配置Apache2 + SVN Cent OS上配置Apache2 + SVN

    linux上svn、apache安装

    ### Linux环境下Subversion (SVN) 和 Apache 的安装配置指南 #### 一、Apache的安装配置 Apache是一款广泛使用的Web服务器软件,它以其强大的功能、稳定性、安全性等优点深受用户的喜爱。在Linux环境下安装Apache...

    svn+apache

    在Linux RHEL7.0环境中配置Subversion (SVN) 和Apache服务器是一项常见的任务,主要用于实现版本控制系统与Web服务的集成,便于团队协作和代码管理。下面将详细介绍如何在RHEL7.0系统上安装并配置SVN和Apache服务器...

Global site tag (gtag.js) - Google Analytics