SVN和Apache结合总结

   最近开始学习SVN ,遇到的第一个问题就整了我二天时间,网上查到的资料大多都是重复的,参考了一些资料,终于和apache 结合好了,下面总结一下:

 

1 、版本兼容问题:

    试过好几个版本的SVNapache ,总是整合不成功,apache 启动不起来,试过svn 1.6.6apache2.2.15 ,最终没有成功,最后终于用svn1.6.1apache2.2.11 整合成功,到现在还弄不清楚到底哪几个版本 之间有冲突。

 

 

2 、整合过程

 

     安装:安装apachesvn, 在安装apache 的时候domain 那些可以设成localhostsvn 我用的解压版的,直接解压就可以使用,最后在环境变量在path 后加上%svn%/bin 就可以,%svn%svn 的安装路径。建立svn 目录,假设在此为d:\svn

 

    整合:

 

    1、把%svn%/bin 下面的mod_dav_svn.so mod_authz_svn.so 复制到 %apache %/ modules 目录下

2 22 、把 %svn%/bin 下的九个dll 文件intl3_svn.dll,libapr-1.dll,libapriconv-1.dll, libaprutil-1.dll,libdb44.dll,libsvn_delta-1.dll,libsvn_fs-1.dll, libsvn_repos-1.dll,libsvn_subr-1.dll 拷贝到 %apache % bin 目录下

 

 

    2、修改%apache%/conf/httpd.conf 文件

 

  httpd 中找到以下2 行,并把前面的注释符# 删除:

#LoadModule dav_fs_module modules/mod_dav_fs.so



#LoadModule dav_module modules/mod_dav.so



  LoadModule 结尾 处添加以下2 行:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so



  http.conf 文件的结尾处添加以下配置行:

           <Location /svn>

               DAV svn

               SVNParentPath D:\svn

               AuthType Basic

               AuthName "Subversion repositories"

               AuthUserFile D:\svn\passwd

               #AuthzSVNAccessFile D:\svn\accessfile

               Require valid-user

           </Location>

 

备注: <Location /svn/> 可列出d:\svn 下的版本库, 若为<Location /svn> 则不能访问https://127.0.0.1/svn 下的项目只能这样访问,https://127.0.0.1/svn /proj1

 

 

 

  3、 创建passwd 文件来管理svn 的访问权限


 
使用%apache%\bin\htpasswd.exe 来创建密码

第一个用户的命令:htpasswd -c D:\svn\passwd username%

第二个用户的命令:htpasswd D:\svn\passwd%username%

   -c 是创建新文,%username% 是 用户名,输入命令后还会提示输入密码二次。

    D:\svn\passwd 为文件保存路径

 

 

4、权限设置


在d:\svn目录下面新建accessfile文件,在里面写入:

[groups]

admin=lds

[/]

* = r

@admin = rw

dangerman =

[proj1:/]

@admin = rw

[proj2:/]

@admin = r

[proj3:/]

@admin =

 

[groups]是给用户分组[/]为所有库[库名:/]为指定库,r为只读属性,w为可写

基本含义是根目录下任何人有读权限,admin 组有读写权限;adminproj1 读写权限 对proj2 有读权限,对 proj3 没有任何权限。

 

 

说明:

  <Location /svn/>

   意味着可以通过像这样的 URL(http://MyServer/svn) 来访问 Subversion 版本库
DAV svn

   Apache 哪个模块 负责服务像那样的 URL --在这里就是 Subversion 模块
SVNListParentPath on

   Subversion 1.3 及更高版本中,这个指示器使得 Subversion 列出由 SVNParentPath 指定的目录下所有的版本库

SVNParentPath F:\svnROOT

   Subversion 在目录 F:\svnROOT 下寻找版本库
AuthType Basic

   用基本的验证,比如用户名 / 密码对

AuthName "Subversion repositories"

   一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthUserFile F:\svnROOT\htpasswd

   F:\svnROOT\htpasswd 用为密码文件用来验证用户的用户名及密码
AuthzSVNAccessFile F:\svnROOT\authz

   F:\svnROOT\authz 来限定各个用户或组在版本库中目录的访问权限
Require valid-user

   定用户只有输入正确的用户名及密码后才能访问这个路径(此项表示,无论是 IE 还是 Tortoise ,只有通 过密码验证才能访问)。

下面表示允许匿名访问,对于读操作,不需要用户验证。

#<LimitExcept GET PROPFIND OPTIONS REPORT>
#Require valid-user

你可能感兴趣的:(apache,SVN,IE,F#,subversion)