天天看点

Apache2.2.8 + svn-1.4.6安装配置实录

Apache2.2.8 + svn-1.4.6安装配置实录

一、准备工作

 1.下载apache2.2.8

 下载的地方很多,我选择的是天空下载站 http://www.skycn.com/soft/41662.html

 2.下载svn-win32-1.4.6.zip :

 http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=8100

 注意要选择 Subversion 1.4.6 Win32 binaries for Apache 2.2.x. 这款

二、安装 

 第一步,安装Apache2.2.8,下载后直接安装就可以了,安装过程唯一要注意的地方80端口不要被占用。

 第二步,安装Subversion1.4.6,直接解压缩svn-win32-1.4.6.zip即可使用。

 我安装的路径分别是:  apache:D:/Apache22  SVN:D:/svn

二、整合  

 第一步,拷贝 /svn/bin/ 目录下mod_dav_svn.so,mod_authz_svn.so和libdb44.dll,intl3_svn.dll拷贝至/Apache2.2/modules   

注意两个dll一定要拷贝过去,开始没有拷贝这两个dll文件,导致apache始终不能加载 mod_dav_svn.so  

第二步,打开Apache安装目录下的httpd.conf文件,找到LoadModule dav_module modules/mod_dav.so(83行)    

 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    

第三步,建立SVN版本库根目录   我的根目录:D:/svn/SVNSource

 第四步,在这个文件的最后,追加如下语句:

<Location /svn>

   DAV svn

   #SVNListParentPath on

   SVNParentPath D:/svn/SVNSource

  </Location> 
           

 第五步,创建仓库   进去svn/bin目录 执行 svnadmin create D:/svn/SVNSource/test   命令执行成功之后,会在D:/svn/SVNSource/test下面生成很多的文件和目录。  

 第六步,测试运行     重新启动Apache Server 在浏览器中输入网址: http://localhost/svn/test/这时候,看到页面显示:    Revision 0: / Powered by Subversion version 1.4.6 (r19776).   安装成功,接下来将进行权限设置。  

三、svn权限设置  

 第一步,修改上面第四步的内容为: 

<Location /svn>

    DAV svn

    #SVNListParentPath on

    SVNParentPath D:/svn/SVNSource



    ### apache auth begin

    # how to authenticate a user

    AuthType Basic

    AuthName "Subversion repository"

    #保存用户名和密码,这个文件需要用Apache的htpasswd工具创建

    AuthUserFile D:/svn/apache_authz

    Require valid-user

    ### apache auth end



    ### svn auth begin

    # our access control policy

    #保存用户访问的权限策略

    #AuthzSVNAccessFile D:/Program Files/svn/svn_authz

    # authentication if necessary

    #Satisfy Any

    ### svn auth end

</Location>
           

 第二步,用htpasswd工具创建apache_authz 文件   

进去apache22/bin目录 执行 htpasswd -c D:/scv/apache_authz test   

-c 表示创建文件,然后,会提示输入两次密码,以后再加用户就不需要用-c了。

第三步, 下面建立控制用户访问权限的文件svn_authz   

在D:/svn中新建一个记事本文件,输入下面的内容:

[groups]
g_vip = improve
everyone = @g_vip   
[SVNSource:/]                   //这表示,仓库SVNSource的根目录下的访问权限
@g_vip = rw

[SVNSource:/xc]                //SVNSource仓库下test目录的访问权限
@g_vip = rw                    // 如果在前面加上@符号,则表示这是个群组权限设置
           

好,配置完成,重新启动Apache server

  在浏览器地址栏中再次输入:http://localhost/svn/test/

SVN配置成服务启动

4.1启动的服务与客户端检出的关系:

4.1.1       如果启动的服务指向一个具体的版本库,如红字部分描述:

sc create SVNService binpath= "D:/Subversion/bin/svnserve.exe --service -r D:/SVN/svntest" displayname= "SVNService" depend= Tcpip start= auto

则客户端检出的地址应为:svn://192.168.0.1/

4.1.2       如果启动的服务指向的是多个版本库的父目录,如红字部分描述:

sc create SVNService binpath= "D:/Subversion/bin/svnserve.exe --service -r D:/SVN" displayname= "SVNService" depend= Tcpip start= auto

则客户端检出的地址应为:svn://192.168.0.1/svntest

其中,sc是windows自带的服务配置程序,参数binPath表示svnserve可执行文件的安装路径,由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成/"

 --service参数表示以windows服务的形式运行,--root指明svn repository的位置,service参数与root参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。

displayname表示在windows服务列表中显示的名字, depend =Tcpip 表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。

若要卸载svn服务,则执行 sc delete svnserve 即可