Windows环境下搭建Subversion http服务器

为Subversion配置http访问:(svn-book.pdf第6章)
一、为Subversion设置匿名访问

1、把Subversion安装目录下bin目录内mod_dav_svn.so文件复制到apache的modual目录。
2、编辑httpd.conf
打开mod_dav.so 和 mod_dav_svn.so模块加载
#islq modify for svn
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
#islq modify end

增加svn的库路径描述,直接指定根目录:(测试项目在E:\svntest\repository)
#islq add for svn
<Location /svn>
DAV svn
SVNParentPath e:/svntest
</Location>
#islq add end

现在Restart Apache2就可以匿名访问svn的数据库了。
直接在浏览器地址栏输入:http://localhost/svn/repository

提示:

  • 如果先安装Apach2后安装Subversion就有很多东西是自动设置好了的
  • e:\svntest目录下已经有一个名为repository的项目了,参见新项目建立

二、给Subversion增加用户/密码控制

Apache2自带一个生成密码文件的工具:
E:\Apache2\Apache2\bin>htpasswd -cm e:/apache2/data/svn-auth-file islq
New password: ********
Re-type new password: ********
Adding password for user islq

修改httpd.conf中Location /svn部分如下,加入密码认证部分
#islq add for svn
<Location /svn>
DAV svn
SVNParentPath e:/svntest
AuthType Basic
AuthName "Subversion repository"
AuthUserFile e:/apache2/data/svn-auth-file
Require valid-user
</Location>
#islq add end

restart Apache2,再通过HTTP连接就会要求输入密码了

注意:http连接时密码是明文传送的,可以更换成https连接

我的Apache2缺省安装的情况下,没有附带mod_ssl.so模块,暂时不知道怎么弄。

三、给Subversion增加目录权限控制

1、把Subversion安装目录下bin目录内mod_dav_svn.so文件复制到apache的modual目录。
2、修改httpd.conf加载模块的相应内容,加载该模块,修改后如下:
#islq modify for svn
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
#islq modify end

3、修改httpd.conf内Location小节的内容,支持目录权限
#islq add for svn
<Location /svn>
DAV svn
SVNParentPath e:/svntest
#our access control policy
AuthzSVNAccessFile e:/apache2/access/file

#try anonymous access first,resort to real
#authentication if necessary.
Satisfy Any
Require valid-user

#how to authenticate a user
AuthType Basic
AuthName "欢迎访问XXXX,请输入密码。"
AuthUserFile e:/apache2/access/svn-auth-file
</Location>
#islq add end

4、建立相应的密码文件和访问权限文件
密码文件建立方法同上,路径要和Location小节中设置相同
建立目录权限设置文件e:/apache2/access/file,直接编辑以下内容:

[/]
* = rw
[repository:/tags]
* =

5、测试效果,
访问http://localhost/svn/repository/
当你访问/tags时,会被拒绝

by islq 2006-3-21

你可能感兴趣的:(windows,SVN,浏览器,Access,subversion)