不相信最佳实践,只相信在一定条件下,一些实践比其他实践更有用

Windows XP+ Subversion 1.6.6+apache 2.2.15 +TortoiseSVN 1.6.6.12

上一篇 / 下一篇  2010-07-17 15:31:39 / 个人分类:实践总结

1.     服务器环境

Windows XP+ Subversion1.6.6+ apache2.2.15+ TortoiseSVN 1.6.6.12

2.     安装配置apache

1.     下载Apache2.2.15并安装。设安装目录为:C:\Program Files\Apache Software Foundation\Apache2.2

2.     下载Subversion1.6.6并安装。设安装目录为:C:\Program Files\Subversion

3.     假设已安装完成上述软件,整合配置步骤如下:

1)     复制C:\Program Files\Subversion \bin目录下的mod_dav_svn.somod_authz_svn.soC:\Program Files\Apache Software Foundation\Apache2.2\modules目录下。

2)     复制C:\Program Files\Subversion \bin目录下的所有dll文件(共17个文件)到C:\Program Files\Apache Software Foundation\Apache2.2\bin目录下

3)     C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf配置文件,找到#LoadModule dav_module modules/mod_dav.so#LoadModule dav_fs_module modules/mod_dav_fs.so文件 ,并取消前面的“#”。并在LoadModule dav_fs_module modules/mod_dav_fs.so的下一行增加:LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so,一个语句一行,最后的形式为:

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

4.     使用Apache自带的htpasswd工具,生成密码文件,操作如下:

1)     建立

C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn目录

2)     DOS界面,输入如下命令:

C:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd -cmb ../conf_svn/passwd limenglei 123456

其中,limenglei为登录SVN用户名,123456为密码

5.     建立其他用户,

DOS界面中将当前目录切换到apache2目录(通常为C:\Program Files\Apache Software Foundation\Apache2.2\bin

输入命令:C:\Program Files\Apache Software Foundation\Apache2.2\bin> htpasswd ../conf_svn/passwd liml

输入用户liml的登录密码。提示Adding password for user liml表示用户创建成功。

3.     SVN配置

一、           版本库配置

首先创建版本库存储位置,如:D:\svnserver\repository

版本库分单库模式和多库模式,简单的说多库就是在\repository目录下有多个版本库,比如可以用http://localhost/repository/repo01http://localhost/repository/repo02,...来访问不同的版本库,这些版本库对应于D:\svnserver\repository下面的子目录repo01repo02。而单库只能用http://localhost/repository来访问唯一的版本库。

1.     单库模式配置

打开配置文件:

C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf,在文件最后增加:

<Location /repository>

DAV svn

SVNPath "D:\svnserver\repository"  

AuthType Basic

AuthName "LiMengLei subversion repository"

AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn\passwd"

Require valid-user

</Location>

配置表示:你所有的版本库将位于D:\svnserver\repository目录下,要访问你的版本库可以使用这样的URLhttp://YourIP/ repository /,访问权限将由passwd文件中的用户名/密码来限制。

 

详细说明如下:

---------------------------------------------------------------------

<Location /repository >  //访问SVN服务器的URL组成模式

意味着可以通过这样的URL(http://serverIP/ repository)来访问Subversion版本库

DAV svn

告诉Apache哪个模块负责负责上面的URL--在这里就是Subversion模块

SVNPath "D:\svnserver\repository"

告诉Subversion在目录D:\svnserver\repository下寻找版本库 

AuthType Basic

启用基本的验证,比如用户名/密码

AuthName "LiMengLei subversion repository"

当一个验证对话框弹出时,告诉用户这个验证是用来做什么的

AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn\passwd" 

指定C:\..\passwd作为密码文件用来验证SVN用户的用户名及密码 

Require valid-user

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

 

若想配置无需用户名验证的登录方式,可在httpd.conf的最后添加如下内容:

<Location /repository>

DAV svn

SVNPath "D:\svnserver\repository"  

</Location>

 

2.     多库模式配置

多库模式的配置方式实际上就是将SVNPath "D:\svnserver\repository"中的SVNPath变为SVNParentPath。全部文件如下:

<Location /repository>

DAV svn

SVNParentPath "D:\svnserver\repository"  

AuthType Basic

AuthName "LiMengLei subversion repository"

AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn\passwd"

Require valid-user

</Location>

二、           运行版本库

1.若已安装TortoiseSVN,在D:\svnserver目录下,选中repository文件夹,右键TortoiseSVN--->Create repository here

2.通过命令方式建立版本库,

DOS命令输入:C:\Program Files\Subversion\bin >svnadmin create D:\svnserver\repository

 

重启Apache,在IE地址栏中输入http://localhost/repository。输入用户名limenglei密码123456,界面中出现Revision 0:/。恭喜,你的版本库已经开始运作。

4. 权限控制

打开配置文件:

C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf将最后添加的<Localtion /repository>内容修改如下:

<Location /repository>

DAV svn

SVNPath "D:\svnserver\repository"  

AuthzSVNAccessFile D:\svnserver\repository\conf\authz

AuthType Basic

AuthName "LiMengLei subversion repository"

AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn\passwd"

Require valid-user

</Location>

authz文件中定义了每个账号或者每个角色可以干什么,看以下的例子:

[repo01:/]

User1 = rw

User2 = r

对于多库,定义其中一个repo01下的所有目录,运行user1读写,users只读

[repo01:/project1]

User1 = rw

User2 = r

和上面类似,只不过规定细化到了子目录

[/project1]

User1 = rw

User2 = r

这个说的是单库的情况

[groups]

Admin = user1,user3

Readonly = user2,user4

 

[repo01:/]

@admin = rw

@readonly = r

这个就是设定角色了,和前面的区别主要是有了group,然后group的名字前面有@,为了和用户名区分。


TAG: svn SVN

 

评分:0

我来说两句

Open Toolbar