Windows基于Apache的svn服务器配置


下面内容是从网上找的一个比较靠谱的教程,但是安装完成后会总是出现权限不足的问题


You don't have permission to access /svn/dev/ on this server.


初步判断可能是apache、svn版本不一致导致的;但是试了很多版本都没解决,最终决定直接把之前已经运行的okit产品中的svn单独拧出来搞了个绿色安装包,真正做到妈妈再也不用担心配置那么麻烦了!。。。。。彩蛋在文章最后哦

--------------------------

下面是我配置SVN服务器的过程,现在把我所配置的方法,记录下来,以供其他有需要的朋友参考,需要改进的地方,请指教!

一 环境

  操作系统:windows2003 server

  Apache:httpd-2.2.22-win32-x86-no_ssl.msi

       subversion: Setup-Subversion-1.7.8.msi

       下载地址:https://sourceforge.net/projects/win32svn/files/?source=navbar

    TortoiseSVN: TortoiseSVN-1.7.11.23600-win32-svn-1.7.8.msi

二 安装步骤

    1.安装Apache

    如果您已经拥有Apache的安装程序,那么你就可以双击安装程序开始安装。请确保你输入正确的服务器URL(如果你的服务器没有域名,你可以直接输入IP地址,邮箱可以随便写一个)。我建议你将Apache安装成 for all Users,on Port 80,as a service。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下的Apache Group"Apache2"conf目录中找到文件httpd.conf,将其中的Listen 80改成一个不用的端口,比如Listen 8888。然后重新运行这个安装程序,这次应该不会再有问题了。
      如何 测试Apache是否安装成功?
     你可以在你的浏览器中键入 http://loccalhost,如果显示“It works!”,那么你的Apache就安装成功了。

    2.安装Subversion并配置

   a,双击Subversion的安装程序来完成安装,安装完毕之后。我们进入subversion文件目录中(默认安装位置是:c:\Program Files\Subversion),  在该目录中的bin文件夹中找到mod_dav_svn.so 和 mod_authz_svn.so,将它们拷贝到Apache的modules目录(通常为c:\Program Files\Apache Group\Apache2\modules)下。然后将Subversion/bin/ 目录下的 libdb44.dll、libeay32.dll、以及 ssleay32.dll文件 复制到 Apache目录 底下的 bin 目录下。

   b,打开Apache的配置文件httd.conf(通常为c:\Program Files\Apache Group\Apache2\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


*注意: 这两行的代码顺序不能错,以免带来不必要的麻烦。 

C, 然后在该文件最末进行相应的配置,以便客户端 TortoiseSVN和浏览器知道如何访问:

(注意:记得在c:\下建立文件夹(c:\svn))

<Location /svn>  
DAV svn  
SVNParentPath C:\svn  
AuthType Basic  
AuthName "test"  
AuthUserFile c:\svn\passwd  
AuthzSVNAccessFile C:\svn\svnaccessfile  
Require valid-user  
</Location>

 


每一行的说明如下:

<Location /svn>   #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库  
DAV svn     # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块  
SVNParentPath C:\svn   #告诉Subversion在目录C:\svn下寻找版本库  
AuthType Basic  #启用基本的验证,使用用户名/密码验证  
AuthName "test"   # test为版本库  
AuthUserFile c:\svn\passwd   #passwd问密码和用户文件,用来验证用户的用户名及密码  
AuthzSVNAccessFile C:\svn\svnaccessfile    #权限控制文件,限定各个用户或组在版本库中目录的访问权限  
Require valid-user  #限定用户只有输入正确的用户名及密码后才能访问这个路径


 d,下面,我们就来创建passwd文件,你打开命令行(DOS窗口),将当前目录切换到apache2目录(通常为c:\Program Files\Apache Group\Apache2),然后打入以下命令以创建文件:


bin\htpasswd -c passwd <username>  
  
比如: bin\htpasswd -c c:\svn\passwd admin  
命令分析:  
 c:\svn\passwd 表示会在:c:\svn目录下创建一个passwd文件  
 admin 表示用户名


然后输入两次密码,如下图所示:


   


我们用记事本可以打开查看passwd这个文件

   

 

   可以看出,我们输入的密码,已经被加密了。但是【用户名】(admin)还是可以看到。

然后我们再创建一个test用户,密码也为Test


创建方法如下:

bin\htpasswd -b c:\svn\passwd test test


此命令执行Apahce的bin目录下的htpasswd.exe来创建一个密码文件,创建完成之后,重启Apache服务。


 e,权限控制文件创建

 在c:\svn目录下创件svnaccessfile文件,然后打开进行配置,可以参照下面的示例:

#组配置  组 = 用户名  
[groups]          
@admin = admin  
@user = test  #test用户还需要按照上面d步骤来创建它和它的密码  
  
# 为所有库指定默认访问规则  
# 所有人可以读  
[/]  
* = r  
  
# 为test版本库制定权限  
#admin组拥有读写权限  
#user组只有读取权限  
[test:/svn/test]  
@admin = rw  
@user = r


三、测试

 

    (1)创建版本库

        

 

    新建一个文件夹--》鼠标右键点击---》选择【在此创建版本库】

    

 

     依次点击【创建目录结构】【启动版本库浏览器】

 

   (2)在d:\新建一个目录叫 wwwroot,我们用来测试svn是否成功安装了

 

         向wwwroot里,复制些文件。然后将文件 导入 库中

 

 

(3)打开IE浏览器,输入http://192.168.1.102/svn/test

    

   如果svn配置正确的话,应该可以看到上面的内容。

参考资料:http://blog.csdn.net/zeng_84_long/article/details/7798680

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

http://www.hndzz.cn/?p=570




-----------------上面的内容是从网上找的,下面的内容是瞎编的,可信度为100%,亲测有效。



SVN_HTTP_DEV.zip


直接解压到D盘根目录(当然如果你又需要在别的目录,那就到apache\conf中的httpd.conf批量替换一下也是可以的);然后双击startApache.bat文件,再就是通过http访问了。谁用谁知道!

下一篇

分享

热门文章