天天看点

Apache2.2.14和SVN1.6.6的整合

[align=center][size=medium][b]Apache2.2.14和SVN1.6.6的整合[/b][/size][/align]

[b]1.[/b]先安装Apache服务器。自己手动填写ServerInfo。默认端口号是80。

[b]2.[/b]再安装SVN服务器,直接安装即可,我用的版本是:

Setup-Subversion-1.6.6.msi。

[b]3.[/b]安装TortoiseSVN客户端,安装很简单,只需下一步即可。我用的版本是:

TortoiseSVN-1.5.1.13563-win32-svn-1.5.1.msi

[b]4.[/b]用Apache集成SVN服务

1)首先将Subversion安装目录bin下面的两个文件:mod_authz_svn.so

和mod_dav_svn.so复制到Apache安装目录modules目录下; 再将

Subversion安装目录bin下面所有.dll文件复制到Apache安装目录bin下。

2)找到Apache安装目录下的httpd.conf文件,打开,找到下面两行代码:

#LoadModule dav_module modules/mod_dav.so

#LoadModule dav_fs_module modules/mod_dav_fs.so

将这两行前面的注释“#”去掉,再在带有LoadModule语句的代码段的最后面添加以下二行代码:

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

3)建立一个文件夹,我的是在D盘,如D:/svn,进到该文件夹下,在分别建立test和java文件夹,然后分别在这两个文件夹中,点鼠标右键,选种TortoiseSVN菜单下的子菜单Create repository here选项,单击,资源库就建立起来了。 D:\svn为资源库的父目录。

4)接下来我们必须告诉Apache,新创建的资源库路径,可以通过Location标签来完成这个设置。因为不希望为每个单独的项目都进行单独的设置,所以我们把所有项目都存放在统一的资源库中, 那么可以使用SVNParentPath指令来指定存放所有项目的路径。在httpd.conf文件末尾添加下面配置信息:

<Location /svn>

DAV svn

SVNListParentPath on

SVNParentPath "D:/svn"

#SVNPath "D:/svn/test"

######D:/svn为父目录,在它下面有test和java两个目录

####################认证的类型

AuthType Basic

####################认证的名称,显示于登录提示框

AuthName "Subversion 资源库,请登录!"

####################Which password file to use for authentication 存储用户登录信息的文件

AuthUserFile D:\svn\passwd

####################限定各个用户或组在版本库中目录的访问权限

AuthzSVNAccessFile D:\svn\svnaccessfile

####################让所有用户对版本库都有读的权限而只有特定的用户才有写的权限

Require valid-user

</Location>

注意,在这个信息中,D:\盘符D一定要大写,如果是小写的话,有可能在打开浏览器时不会弹出输入用户名,密码窗口。

由于把SVN的服务交给Apache来管理,所以对网络用户进行用户名和密码验证,关于上面AuthUserFile D:\svn\passwd的passwd文件是要进行MD5加密的,有关操作见5);而svnaccessfile是用来设置相应的权限信息,见6)。

5)从cmd命令进入到Apache的bin目录下,执行下列命令,创建用户及密码

说明:创建用户zj

输入:htpasswd –c D:\svn\passwd zj

说明:使用-c参数来创建一个passwd文件

输出:

New password: *****

Re-type new password: *****

Adding password for user zj

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

打开passwd文件,密码使用MD5加密过了,而且同样的密码加密出来的

内容却不相同。

6)然后用文本编辑器创建一个Subversion授权文件,文件名为svnaccessfile,内容如下:

[groups]

admin = john, kate

devteam1 = john, rachel, sally

devteam2 = kate, peter, mark

# 为所有库指定默认访问规则

# 所有人可以读,管理员可以写,危险分子没有任何权限,[/]代表根目录

[/]

* = r

@admin = rw

dangerman =

# 允许开发人员可以完全访问他们的项目版本库

[test:/]

@devteam1 = rw

[java:/]

@devteam2 = rw

7)保存好上面的所有配置文件之后,重启Apache服务,此时就可以在IE里面通过http://localhost/svn/test 和http://localhost/svn/java 来测试用户登录,以及不同用户组权限。