Windows下安装apache2.2+subversion服务器
1 安装apache
2 安装svn以及TortoiseSVN客户端的步骤
这个除了改一下安装路径就没别的了!(网上安装的资料也有很多!)
3配置(让两条平行线相交)
3.1 打开svn安装目录找到mod_dav_svn.so和mod_autha_svn.so,将这两个文件拷贝到apache下的modules目录下!然后在从svn安装目录里找到libdb43.dll(libdb44.dll),将它拷贝到apache下的modules目录下!
3.2 用记事本或者editplus打开apache的配置文件:conf目录下的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
4 去创建自己的版本库
4.1 如果你想创建单版本库:
找一个路径(我的安装在E:/ svn_repository)
1 创建版本库,两种方法:1 打开doc窗口(命令行)用命令创建:
svnadmin create E:/ svn_repository/carpool(路径根据自己需要设置)
2 使用TortoiseSVN创建:在安装目录下建一个文件夹,命名为版本库的名字,(我的是carpool)然后在文件夹上右键,找到create repository here,就会自动为你创建好了!
2 版本库创建好后,进入打开carpool/conf/svnserve文件(设置需要验证才能进入版本库),找到
# password-db = passwd这句话将#去掉,保存后关闭。
再打开carpool/conf/authz文件(配置项目的相关人员并给与权限),找到[groups](分组)
在它下面可以创建相关人员。我的是这样写的:
Carpool:bushy,zhangsan,lisi(名称是可以自己根据实际情况设定的)
然后在
# [/foo/bar]
# harry = rw
# &joe = r
# * =
后面写([]里写的是项目名,r是可读权限,w是可写权限)
[carpool:/]
@bushy=rw
@zhangsan=rw
@lisi=rw
然后在
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
这里接着写
[carpool:/carpool]
@bushy=rw
@zhangsan=rw
@lisi=rw
(rw表示可读可写的权限)
3 将carpool/conf/passwd这个文件删掉自己创建一个文件
进入doc窗口。找到相应的位置你可以有两种选择:
3.1 进入apache/bin这个路径
上图是我的apache的安装路径,在这个路径下执行:
这个命令的意思是在bin这个目录下会生成passwd这个文件,这个文件里会记录一个叫bushy的角色他的密码是bushy!执行成功后去apache的安装路径下找到这个passwd文件将其剪切粘贴到版本库的(carpool)的conf目录下。
或者你在doc窗口进入版本库的位置(即carpool/conf)执行htpasswd –b passwd username userpasswd这个命令,执行成功后就不用粘贴了!
4 最后一步啦!进入apache的安装路径,在conf目录下打开httpd.conf文件
在文件最后添加如下代码
<Location /svn>
#告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块
DAV svn
#显示所有SVNParentPath下的版本库。
SVNListParentPath on
#告诉Subversion需要查看的版本库位置
SVNParentPath E:/ svn_repository/
#Subversion版本库的访问控制文件的路径
AuthzSVNAccessFile E:/ svn_repository/carpool/conf/authz
Satisfy Any
#激活基本认证,就是用户名/密码
AuthType Basic
#认证对话框的信息
AuthName "Subversion repositories"
#指定使用的密码文件
AuthUserFile E:/ svn_repository/carpool/conf/passwd
#只有输入了正确的用户/密码的用户可以访问URL
Require valid-user
</Location>
以上这段代码只需修改3个地方:即3个路径
1 SVNParentPath E:/ svn_repository/
2 AuthzSVNAccessFile E:/ svn_repository/carpool/conf/authz
3 AuthUserFile E:/ svn_repository/carpool/conf/passwd
这3个路径来源于刚才你修改的那个authz,passwd放在哪里了,就把那个路径写到哪!
好了,现在重新启动apache吧!然后在地址栏输入:http://localhost/svn/carpool,然后会提示你输入用户名和密码,输入后就能进去啦!
说完了单版本库,再来说说多版本库
1 在版本库的根目录下创建两个版本库,我的根目录还是svn_repository,版本库的名字是 testx,testy.版本库是怎么创建的参照单版本库就ok了!
2分别进入两个版本库的conf目录下的svnserve文件,将
# password-db = passwd这句话将#去掉,保存后关闭。
3 将任意其中的一个版本库里的authz拿到根目录下,打开添加如下代码:
在[group]下将两个项目的团队人员名都添加到这,我的是这样写的:
testx:zhangsan,lisi,wangwu
testy:zhaoliu,zhangsan
然后在
# [/foo/bar]
# harry = rw
# &joe = r
# * =
后面写
[testx:/]
@ zhangsan = rw
@ lisi = rw
@ wangwu = rw
[testy:/]
@zhangsan = rw
@zhaoliu = rw
然后在
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
这里接着写
[testx:/testx]
@ zhangsan = rw
@ lisi = rw
@ wangwu = rw
[testy:/testy]
@ zhangsan = rw
@ zhaoliu = rw
好了,角色以及他们的权限都创建好了,下面就是为他们设置密码了。
这个也是参照单版本库为每一位角色都创建密码!
这里要注意的是密码文件passwd创建好了之后一定要放在版本库的根目录下!(即与authz文件放在一起)
4 最后一步了:打开apache安装目录下的conf/httpd.conf文件
在文件最后添加如下代码
<Location /svn>
#告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块
DAV svn
#显示所有SVNParentPath下的版本库。
SVNListParentPath on
#告诉Subversion需要查看的版本库位置
SVNParentPath E:/ svn_repository/
#Subversion版本库的访问控制文件的路径
AuthzSVNAccessFile E:/ svn_repository/authz
Satisfy Any
#激活基本认证,就是用户名/密码
AuthType Basic
#认证对话框的信息
AuthName "Subversion repositories"
#指定使用的密码文件
AuthUserFile E:/ svn_repository/passwd
#只有输入了正确的用户/密码的用户可以访问URL
Require valid-user
</Location>
以上这段代码只需修改3个地方:即3个路径
1 SVNParentPath E:/ svn_repository/
2 AuthzSVNAccessFile E:/ svn_repository/authz
3 AuthUserFile E:/ svn_repository/passwd
这3个路径来源于刚才你修改的那个authz,passwd放在哪里了,就把那个路径写到哪!
好了,现在重新启动apache吧!然后在地址栏输入:http://localhost/svn/testx,然后会提示你输入用户名和密码,输入后就能进去啦!