您的位置:首页 > 理论基础 > 计算机网络

Windows环境下搭建Subversion http服务器

2006-03-21 20:45 253 查看

为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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息