Windows 2003下面Apache+SVN配置

  8月又快到了,忙的连写文章的时间都没有了,也该写写了。本来这篇应该是6月写的,因为这件事很早就做完了。之前就建议领导找个专人负责配置管理,但领导不怎么重视,从而使项目组的配置管理一直没用起来,导致代码的版本无法控制,并且多个人在扩展功能的时候,集成非常麻烦,偶尔还会带来不必要的风险,有时都不清楚最新的代码在哪,一旦人员拿着最新代码离职,后果不堪设想。

         看来这件事还得自己亲自下手,这也是没办法的办法了。首先的把环境搭起来,至于后面使用到什么程度就是另外一回事了,因为好多人都不会使用SVN,就连自己也就会一些简单的,复杂的还真不懂,公司也不提供培训。

第一步:下载ApacheSVN软件

Apache webserver http://httpd.apache.org/download.cgi

SVN Server http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

TortoiseSVN 1.7 http://tortoisesvn.net/

两者之间版本搭配要注意,最好下载最新版,下载SVN的时候后面的描述注明了支持的Apache版本。

第二步:安装程序

1)      安装Apache,安装的时候注意一下是否开有IIS、迅雷、QQ音乐等可能占用80端口的软件,安装过程一直Next,然后可以在httpd.conf文件里面修改Listen 9000(端口号),做一些基本的设置就可以了,安装完成浏览器中访问http://loaclhost:9000 ,页面出现It works!表示安装成功!

2)      安装SVNSVN可能是.exe或者其他压缩方式打包的软件包,直接安装或者解压到某个目录即可。

3)      安装TortoiseSVN 1.7客户端

第三步:配置ApacheSVN

1)         C:\Program Files\Subversion\bin目录下的mod_dav_svn.somod_authz_svn.so libdb44.dll ,拷贝出来放在C:\Program Files\Apache Software Foundation\Apache2.2\modules目录下。

2)         修改D:\Program Files\Apache Software Foundation\Apache2.2\conf \httpd.conf文件

3)         去掉以下行的注释

#LoadModule dav_fs_module modules/mod_dav_fs.so

#LoadModule dav_module modules/mod_dav.so

4)         LoadModule节的最后添加以下两行:

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

***注意: 这两行的代码顺序不能错,以免带来不必要的麻烦。

重启Apache,当Apache无法启动,或者无法加载某个动态库的时候,一般先检查该动态库的关联情况。

5)         然后在该文件末尾进行相应的配置,以便客户端TortoiseSVN和浏览器知道如何访问:

# 可以通过像这样的URL(http://10.122.88.24:9000/SvnRoot/)来访问Subversion版本库

<Location /SvnRoot>

告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块

DAV svn

                   # 告诉Subversion在目录F:\SvnRoot下寻找版本库

SVNParentPath F:\SvnRoot

                   # 启用基本的验证,使用用户名/密码验证

AuthType Basic

                   # A2, ProjectWeekSystem,……为版本库

AuthName "A2,Project,WeekSystem, CodePro,DevelopDoc,PorblemDoc"

                   # passwd密码和用户文件,用来验证用户的用户名及密码

AuthUserFile F:\SvnRoot\passwd

                   # authz 权限控制文件,限定各个用户或组在版本库中目录的访问权限

AuthzSVNAccessFile F:\SvnRoot\authz

                   # 限定用户只有输入正确的用户名及密码后才能访问这个路径

Require valid-user

</Location>

第四步:创建用户密码passwd文件

打开命令行(DOS窗口),将当前目录切换到Apache2目录(通常为C:\Program Files\Apache Software Foundation\Apache2.2\bin),然后打入以下命令以创建文件:

htpasswd -c passwd <username>

 

比如: htpasswd -c F:\SvnRoot\passwd admin

将会在: F:\SvnRoot目录下创建一个passwd文件,admin表示用户名

第五步:权限控制文件authz创建

1)         第一种方法:命令行下面转到到SVN的安装BIN目录。运行:svnadmin create F:\SvnRoot\Project

2)         第二种方法:在F:\SvnRoot\文件里面新建文件夹Project,然后右键TortoiseSVN——>Create repository here创建版本库,目录里面将会生成配置文件,将conf文件夹里的authz复制到F:\SvnRoot\目录下

然后打开authz进行配置,可以参照下面的示例:

#组配置   = 用户名
[groups]        
@admin = admin #admin
用户

@user = test  #test用户还需要按照上面步骤来创建它和它的密码

为所有库指定默认访问规则
所有人可以读
[/]
* = r

Project版本库制定权限
#admin
组拥有读写权限
#user
组只有读取权限
[
Project:/]
@admin = rw
@user = r

 

一切准备工作已经完成了,你就可以用URLhttp//IP:9000/ SvnRoot /Project)来访问版本库了!

好了,现在你就应该可以去体会一下你的劳动成果咯!

 

  虽然可以使用,但是还是存在一个问题,到现在也没有解决,就是如何配置一个用户通过http//IP:9000/ SvnRoot / 访问里面所有的版本库,希望高手能指点一下,在这里非常感谢了。

 

原文地址:https://www.cnblogs.com/ZHF/p/2119596.html