apache+svn配置

上一篇 / 下一篇  2008-12-05 10:33:44 / 个人分类:测试管理文档

Subversion配置安装教程(一)

1.      引言:一直以来我都认为,MS应该从开源项目中汲取有益的东西,开源项目也要向MS学习,而不是象网上每次提到.NetJava就要打嘴仗一样,有些文人相轻的意思。^……^我从工作以来很有幸的能够参与多个Java.Net项目开发,时常在这两种技术之间比较思考,现在有机会和大家分享,说的不对的地方,请大家多多指教。首先我准备谈谈SCM,个人认为在现在的大型软件开发中,团队合作是项目成功最重要的因素之一,尤其是使用.NetJava这些强大的面向对象的语言开发程序,必然会多次分层,基于组件的共享等等,所以SCM就更重要了。MSVSS我想大家应该都用过,也知道VSS的优劣,我就不多说了。(风传VSS不是MS自己开发的,记得有次我去过真正开发VSS的公司的网站,现在地址也忘记了。并且MS内部也不会使用VSS作为自己的SCM工具,呵呵,不知道是不是真的?)在以后的系列文章里,我会讲解SubversionCVS这些主流的开源项目SCM工具,并且会延伸到CIContinues Integration,即继续集成)和BugTrace领域,毕竟只有版本控制系统对于一个大型软件的开发是远远不够的。在这个旅程中,我还会带大家领略一下python(我的最爱。。。呵呵,不想试试吗?非常强大!)的旖旎风光,而且这一系列文章也会收录在我准备撰写的《Using Open Source Software to Implement Your .Net Applications》(中英双语版,呵呵。。。考察一下自己的英语)。首先来介绍一下Subversion,以下引自赛迪网-开放系统世界,作者:顾宏军
   长久以来,在开源世界中,CVSConcurrent Versions System)一直都是版本控制的首选。但是现在用户有了另一个选择,就是SubversionSubversion是下一代版本控制系统,能替代CVS,项目主页是http://subversion.tigris.org 

   Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。 
   它的初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。。。

如果你使用过CVS就能体会到上文所说的Subversion好处了,比如目录版本控制,目录的改名等。对于Subversion的原子提交,我想多说几句,大家可以想象,我们一般做一个修改,可能需要改动多个文件,尤其现在大家多对分层已经趋之若鹜了,除非你还在用着哪种什么东西都写在一起的语言。(比如PB?呵呵,感觉好像是这样的东西。我现在正在作一个遗留系统的迁移到.Net上的工作,这个系统就是用类似PB的一种脚本语言Pantherui,逻辑和数据访问全在一个文件里面,我在代码里面还看到了80年代的注释。呵呵,很强吧?我们公司几个程序员可能是中国为数不多的懂panther语言的人了。扯远了。。。)如果你的一次提交过程中,由于网路原因或者机器的硬件原因或者根本是你自己落下了一些文件没提交,在逻辑意义上这次提交是不完整的,Subversion的原子提交能很好的解决这个问题,个人认为这也是对于CVS最大的改进了。怎么样,是不是有些想数据库的事务的概念呢?动心了吧?ok,废话少说,let's go!Follow me! Fire in the hole!^……^

Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。下面我讲解的是基于Apache Http ServerSubversion,这样做几个好处:A.能使用WebDAV协议。B.能使用浏览器作为客户端工具浏览源码仓库。C.可以很容易的支持到SSPIWindows域认证)和LDAPAD?),这些都是Apache本身就支持的。D.能得到比较完善的Apache安全认证系统,比如SSL加密连接。

安装Subversion
1.
www.apache.org上下载apache http server,注意要下载2.0.X以上的版,否则不能和当前最新的Subversion工作。
安装apache_2.0.63-win32-x86-openssl-0.9.7m.msi,请参照Apache安装

2.    安装svn-1.4.5-setup.exe。安装Subversion
5.
检查$\apache group\apache2\modules下是不是已经有了mod_dav_svn.so
mod_authz_svn.so
6.
检查$\apache group\apache2\modules下是不是已经有了libdb42.dll,如图:

7.
搜索$\apache group\apache2\conf\httpd.conf配置文件中的#LoadModule dav_fs_module modules/mod_dav_fs.so
# LoadModule dav_module modules/mod_dav.so
把前面的注释#去掉;

并检查LoadModule配置节的末尾是不是有了LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so,如图:

注意,请先安装Apache,然后再安装Subversion,这样上述567步骤都可以免了,在安装Subversion过程中它会自动拷贝相应文件到相应目录中,并且修改http.conf文件,然后重新启动apache服务使修改生效。但是我发现现在这个版本的Subversion安装文件可能有个bugapachehttp.conf的配置文件中#LoadModule dav_fs_module modules/mod_dav_fs.so注释没有去掉,所以大家还是小心检查一下。如果你是先安装的Subversion,然后再安装的Apache的,那么上述的步骤一个也不能漏,都需要自己手动完成。
配置Subversion

1.
在硬盘上建立源码库的根目录,例如
E:\SVN
2.
E:\SVN之下建立一个新的目录,例如TestRepository作为我们的测试源码库

3.
建立Subversion数据库,当前版本Subversion支持两种格式数据库,一种是FSFS,另外一种是BDBBerkeley Database)。在命令行下输入svnadmin create --fs-type bdb TestRepository建立BDB格式的数据库(确保当前目录已经切换到E:\SVN\),在命令行下输入svnadmin create --fs-type fsfs TestRepository建立FSFS格式的数据库(确保当前目录已经切换到E:\SVN\)。建好数据库以后,到E:\SVN\TestRepository下看看是不是多了很多目录和文件,可以研究一下这些文件,对理解Subversion有帮助,但是不要试图直接修改这些文件!如图:


如果大家经常关注开源技术,就知道BDB是一个轻量级的关系数据库,可以作为一个轻巧的内置数据库,在很多开源项目下有很多应用,比如CVSTracFSFS格式主要的特点是可以支持Subversion的数据库和Subversion服务器可以在不同的物理机器上,可以通过网络共享(不知道是否支持NFS?),能很好的工作在MS Win98上,并且速度更快,但是由于FSFS是一种新的格式,稳定性可能没有BDB好。推荐大家使用BDB,毕竟BDB有很多年开发历史,比较稳定,而且我觉得把SubversionDB和服务器分开放置好像没有什么必要吧?(谁能告诉我这样做的好处?),大家也不会拿一台Win98server吧?^……^。不要试图在BDB的格式的数据库上使用网络共享,也不要使用网络磁盘映射,否则会导致无法预料的错误。
4.
打开$\apache group\apache2\conf\httpd.conf配置文件,在文件的末尾加入以下语句,

<Location /svn>
DAV svn
SVNParentPath e:\SVN
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
这里建立了一个虚拟目录http://yourServer/svn/,所有的Subversion源码仓库都在这个虚拟目录中,并且使用“passwd”文件中username/password(用户名/密码)列表访问http://yourServer/svn/。关于Subversion的安全配置是一个比较重要的部分,我会留到下次配置SSL加密连接再讲。

5.
在命令行下切换到$\apache group\apache2,执行bin\htpasswd -c passwd <username>,这里<username>是你想要加入的用户名,比如doudou。执行这个命令成功以后就会在bin目录下建立一个passwd文件,之后如果再加入新的用户和更改已有用户的密码,执行bin\htpasswd passwd <username>即可。如图:


注意一定要在$\apache group\apache2下执行,这样生成的passwd文件$\apache group\apache2根目录下,而不是在bin目录下,apache默认是在$\apache group\apache2根目录下寻找passwd文件,如果你在bin目录下执行了这个命令请把生成的passwd文件剪切到$\apache group\apache2根目录下。这一点也可以从Apachelog日志中看得出来,如图:

6.
重启Apache服务
7.
在浏览器地址栏中输入http://YourServer/svn/TestRepository,输入用户名密码,okSubversion现在已经可以正常工作了。
如图:


在写作本文的时候参考了TortoiseSVN的帮助文档,在此感谢TortoiseSVN团队杰出的工作!

 


相关阅读:

TAG: 测试管理文档

 

评分:0

我来说两句

日历

« 2024-05-02  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 6318
  • 日志数: 16
  • 建立时间: 2008-10-10
  • 更新时间: 2010-02-23

RSS订阅

Open Toolbar