Windows下部署基于Apache的SVN服务器

参考自

http://www.cnblogs.com/blueskyc/articles/1376982.html

http://blog.csdn.net/zhuxiaowenlinda/article/details/4320094

http://www.blogjava.net/hadeslee/archive/2008/03/12/185788.html

http://blog.csdn.net/kimizhou_blog/article/details/7481959


一.安装Apache

   安装windows版的Apache,我用的2.0.55版(apache_2.0.55-win32-x86-no_ssl.msi), 浏览器输入http://localhost  出现正确提示证明Apache安装完毕,我的Apache主目录(D:\Program Files (x86)\Apache Group\Apache2)


二. 安装Subversion (svn-1.2.3-setup.msi),(D:\Program Files (x86)\Subversion)

安装的时候选择绑定Apache2.0.0,同时将Subversion主目录下的bin目录中的mod_dav_svn.so、mod_authz_svn.so拷贝到Apache主目录下的modules目录中。

*注意Apache的版本应该和Subversion版本匹配,否则会出现各种问题,我的这两个版本测试通过,还有我还试了一个搭配为,Apache2.2.25和Subverion1.8.5, httpd-2.2.25-win32-x86-no_ssl.msi, Setup-Subversion-1.8.5.msi


三. Apache与Subversion集成

 1.  修改Apache主目录下的conf下的httd.conf

#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so

修改为: 
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.so
LoadModule authz_svn_module modules/mod_authz_svn.so

* 此刻可以先重启Apache服务,即restart命令,看Apache是否识别出刚才拷贝的so文件,Apache2.2版本可能会无法识别so文件,可能是要和subversion的版本对应的关系。假如Apache服务无法启动,请查看其主目录下logs文件夹下的error.log,看看其具体错误日志。


 2.同时在此文件中配置Apache中与SVN中的交互

<Location /svn> #意味着可以通过像这样的URL(http://myIP/svn)来访问Subversion版本库
DAV svn # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNParentPath C:\svn_repo #告诉Subversion在目录C:\svn_reop下寻找版本库,即svn数据仓库,此刻就是普通一文件夹,自己创建
AuthType Basic #启用基本的验证,使用用户名/密码验证
AuthName "test123" #数据仓库的现实名称
AuthUserFile c:\svn_repo\passwd   #passwd问密码和用户文件,用来验证用户的用户名及密码,此文件命名随意(passwd),后面创建
AuthzSVNAccessFile C:\svn_repo\svnaccessfile #权限控制文件,限定各个用户或组在版本库中目录的访问权限,此文件命名也是随意的,后面创建
Require valid-user #限定用户只有输入正确的用户名及密码后才能访问这个路径
</Location>

  3. 创建passwd和svnaccessfile文件

  切换到Apache主目录下的bin

bin\htpasswd -c passwd <username>

比如: bin\htpasswd -c c:\svn_repo\passwd admin
命令分析:
 c:\svn_repo\passwd 表示会在:c:\svn_repo目录下创建一个passwd文件
 admin 表示用户名
当要增加一个新用户叫 test
  bin\htpasswd -m c:\svn_repo\passwd test
  即不覆盖刚才创建的passwd,而只是在文件后面多添加一条用户记录


 自身创建一个普通文件命名为svnaccessfile,输入以下内容

#组配置  组 = 用户名

[groups]        

super_admin = admin

user = test



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

# 根目录下,超级管理员具有读写权限,其他人没有任何权限

[/]
@super_admin = rw
* = 


# 为test1版本库制定权限

#admin组拥有读写权限

#user组只有读取权限
#为了便于理解,故意命名为test1,这样浏览器也可以通过http://myIP/svn/test1 访问svn仓库,test1文件夹后面会创建,冒号后面代表test1版本库(仓库)的根目录,当然也可以对仓库的任意子目录设置权限比如[test1:/childTest1],对于test1仓库下的childTest1子目录设置权限对于childTest1子目录的创建不需要在服务器上创建,有权限的客户端checkout后,再创建这个子目录再次commit后即可。

[test1:/]#子目录权限继承父目录的权限,此处超级管理员仍然具有读写权限。

@user = r

具体版本库权限设置参加另一篇博客: http://topinking.iteye.com/blog/342831



4. 创建c:\svn_repo\test1文件夹

  cmd进入Subversion中的bin下,注意是Subversion的子目录, svnadmin create c:\svn_repo\test1


重启apache服务,浏览器输入http://myIP/svn/test1 ,输入正确的用户名密码,看是否能看到svn仓库中的文件


四. 安装TortoiseSVN,svn的客户端(1.6.12.20536,64bit)

TortoiseSVN的使用参见  http://wenku.baidu.com/link?url=JuN_8wcDRdCKtspro_q3uLjbrDnbddqhH5PjREvgquJXxZrLZtYJAtlpjj6MDXTWOKNwnnmopwAyNjfF1Ghg_kqEa-nW68mp_kL8g51I7Mm



附录:

另一种Apache和svn的配置如下

Apache的conf/httd.conf

<Location /svn/test1>#直接指向子目录
DAV svn
SVNListParentPath on#通过浏览器访问时是否显示父目录,即..
SVNPath c:/svn_repo/test1#直接指向test1版本库的目录

AuthzSVNAccessFile c:/svn_repo/test1/conf/svnaccessfile
#Satisfy Any #最好不要加上
Require valid-user

AuthType Basic
AuthName "Subversion repositories"
AuthUserFile  c:/svn_repo/test1/conf/passwd
Require valid-user
</Location> 

svn的权限控制文件  svnaccessfile:

[groups]        

super_admin = admin

user = test


# 为test1版本库制定权限

[/]#此处根目录为版本库test1的根目录

@super_admin = rw

@user = r






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值