Apache,SVN server配置

2010-11-09  赵云峰 

.环境配置

Windows (2003,xp)+ Subversion1.6.6+ apache2.2.16+ TortoiseSVN 1.6.6.12

1.    Subversion 安装包 (服务器端) http://subversion.tigris.org
2.    TortoiseSVN (
客户端) http://tortoisesvn.net

3     apache2.2.16  , http://www.apache.org

.配置Appche

1步骤如下:

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

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

1)     建立C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn目录

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

C :\ \Apache\Apache2\bin > htpasswd -cm d:\svndata\test\passwd user1   //htpasswd命令创建第一个用户(user1),同时生成密码认证文件,c参数为create,m参数为MD5加密方式
New password: ******
Re-type new password: ******
Adding password for user user1   //
加入用户成功

C:\Program Files\Apache Group\Apache2\bin> htpasswd -m d:\svndata\test\passwd user2   //htpasswd命令创建第二个用户(user2),注意如果在这时加入c参数会覆盖掉之前创建的用户及文件。
New password: ******
Re-type new password: ******
Adding password for user user2   //
加入用户成功

.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>

3    运行版本库

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的名字前面有@,为了和用户名区分。

 

413°/4131 人阅读/0 条评论 发表评论

登录 后发表评论