Apache2.2.9+Subversion1.4.6在windows下的配置与权限设置

来源:互联网 发布:js基础教程 编辑:程序博客网 时间:2024/06/08 10:15

1、配置

  *
安装Apache2.2.9安装程序,端口默认为80,如果80被其它程序占用,则选择其它端口
  *
安装Subversion1.4.6(for Apache2.2.X)的安装程序,特别需要注意的是版本的匹配即下载两个安装程序的时候,一定要注意SubversionApache版本的匹配

  *
拷贝Subversion安装目录下bin目录中的mod_authz_svn.somod_dav_svn.so
   
将两个文件粘贴到Apache安装目录下的modules目录中

  *
进入Apache安装目录下的conf目录中,用UltraEditEditPlus打开httpd.conf文件找到第8384(Apache版本不同,这两行内容的位置不同,要以内容为准)
     83 #LoadModule dav_module modules/mod_dav.so
     84 #LoadModule dav_fs_module modules/mod_dav_fs.so
   
将这两行前面的#号去掉(#号表示注释掉当前行的信息),修改后为:
    83 LoadModule dav_module modules/mod_dav.so
     84 LoadModule dav_fs_module modules/mod_dav_fs.so

   
再到LoadModule信息结束的位置,也就是127(同样Apache版本不同,行数不同)加入以下两行信息:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

  *
完成以上步骤也就完成了Apache2.2.9+Subversion1.4.6的基本配置
   
现在关闭Apache服务器,再重启,会发现Apache控制台的状态栏出现Subversion的信息
   
如:Apache/2.2.9(Win32) SVN/1.4.6 DAV/2
   
这就说明已经成功的将Subversion集成到了Apache当中

2
、建立版本库(本文以在D:/盘下操作为例)

  *
Windows开始菜单的运行中执行cmd打开命令窗口,然后转到D:/根目录
  *
D:/根目录下执行D:/mkdir svnroot建立子目录svnroot,再转入svnroot目录下
  *
D:/svnroot目录下首先执行D:/svnroot/mkdir svn1建立子目录svn1,在进入svn1中,在建立三个子文件夹aaa,bbbccc,建好的目录结构如下:
     C:/svnroot/svn1/aaa
                    /bbb
                    /ccc
  *
然后执行svnadmin create D:/svnroot/svn1建立仓库svn1



3
、配置单仓库的用户权限

  *
再次打开Apache安装目录下conf目录中的httpd.conf文件,将光标移到问文件的最末端加入如下代码:

<Location /svn>
#
这里指定了仓库的访问路径,即http://localhost/svn
DAV svn
#
指定仓库在硬盘上的实际位置
SVNPath D:/svnroot/svn1
#
认真方式为基本方式
AuthType Basic
#
认证窗口的标题
AuthName "Subversion Repository"
#
认证用户配置文件实际位置
AuthUserFile "D:/svnroot/passwords.auth"
#
认证权限配置文件实际位置
AuthzSVNAccessFile "D:/svnroot/access.auth"
#
设定为需要进行认证
Require valid-user

</Location>

  *
接下来我们创建认证所需的两个文件:用户文件和权限文件
   
D:/svnroot下建立文件passwords.authaccess.auth(可以用记事本创建后修改文件名)

  *
配置认证用户文件passwords.auth,内容如下:
   
    tom:tom
    cat:cat
    hello:world
   
   
在这里密码都没有加密,如果需要设置密码加密,可以用Apache安装目录下bin目录中的htpasswd.exe程序生成,具体生成方法如下:
   
   
首先要将这个目录配置到环境变量的path中,我的路径是
    C:/Program Files/Apache Software Foundation/Apache2.2/bin
   
然后打开命令窗口,在命令行中使用如下命令
    C:/htpasswd -c D:/svnroot/passwords.auth tom
   
回车后会提示输入密码,输入tom,再回车会提示输入确认密码,再次输入tom就可以了
   
命令行中的参数-c表示创建一个文件,第一次运行创建好了,再添加别的用户的时候就
   
不要再使用这个参数了,如我再添加cathello用户
    C:/htpasswd D:/svnroot/passwords.auth cat
    C:/htpasswd D:/svnroot/passwords.auth hello
   
这样建立的用户密码默认使用的MD5加密,你打开文件以后看到的可能就是如下格式:
    tom:7Z/80Al6$WTqVrBgshc/Bxi6YYkUga1$apr1$
    cat:kNrG459T$qfAZ7MpgpFcdd2xp25gST1$apr1$

   
到此我们就添加好了三个用户tom,cathello,他们的密码分别为tom,cat,world

    *
配置认证权限文件access.auth
   
直接在D:/svnroot下建立access.auth文件即可,然后填入如下内容



[groups]
dev1 = tom,cat  #
开发用户组1
dev2 = hello      #
开发用户组2

[/]
* = r   #
设定所有用户对根目录有读权限,即浏览权限

[/aaa]   
@dev1 = rw #
设定dev1组成员对aaa目录有读和写权限
@dev2 =  #
设定dev2组成员对aaa目录没有任何权限

[/bbb]
@dev1 =  #
设定dev1组成员对bbb目录没有任何权限
@dev2 = rw #
设定dev2组成员对bbb目录有读和写权限

[/ccc]
@dev1 =  #
设定dev1组成员对ccc目录没有任何权限
@dev2=  #
设定dev2组成员对ccc目录没有任何权限



   
到此我们为不同用户分组定义了权限,大家可以使用不同的用户
   
进行browse/import/checkout试验

   
访问路径为http://localhost/svn



4
、配置多仓库的用户权限
  *
首先在建立一个仓库svn2
  *
D:/svnroot目录下首先执行D:/svnroot/mkdir svn2建立子目录svn2
  *
然后执行svnserve create D:/svnroot/svn2建立仓库svn2

   
修改打开Apache安装目录下conf目录中的httpd.conf文件,将光标移到问文件的最末端
   
加入的代码修改如下:

<Location /svn>
DAV svn
#
这里将SVNPath修改为SVNParentPath,当前目录为父目录
#
仓库svn1svn2在这个父目录下
SVNParentPath D:/svnroot  
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile "D:/svnroot/passwords.auth"
AuthzSVNAccessFile "D:/svnroot/access.auth"
Require valid-user
</Location>


  *
认证用户文件passwords.auth不需要做任何修改
  *
认证权限文件access.auth修改如下:
[groups]
dev1 = tom,cat #
开发用户组1
dev2 = hello   #
开发用户组2

[svn1:/]
* = r

[svn1:/aaa]
@dev1 = rw   #
设定dev1组成员对svn1仓库下的aaa目录有读和写权限
@dev2 =      #
设定dev2组成员对svn1仓库下的aaa目录没有任何权限

[svn1:/bbb]
@dev1 =      #
设定dev1组成员对svn1仓库下的bbb目录没有任何权限
@dev2 = rw   #
设定dev2组成员对svn1仓库下的bbb目录有读和写权限

[svn1:/ccc]
@dev1 =      #
设定dev1组成员对svn1仓库下的ccc目录没有任何权限
@dev2=       #
设定dev2组成员对svn1仓库下的ccc目录没有任何权限

[svn2:/]
@dev1 =      #
设定dev1组成员对svn2仓库没有任何权限
@dev2=       #
设定dev2组成员对svn2仓库没有任何权限


   
到此我们为不同用户分组对不同仓库定义了权限,大家可以使用不同的用户
   
进行browse/import/checkout试验

   
仓库1访问路径为http://localhost/svn/svn1
   
仓库2访问路径为http://localhost/svn/svn2

     
对父目录http://localhost/svn/,任何用户都没有任何访问权限

5
、总结

   
经过以上几个部分的介绍,初步实现了Apache2.2.9+Subversion1.4.6(for Apache2.2.X)windows下的配置与权限设置,并且根据单仓库和多仓库的不同情况,进行了分别的分析与配置,基本可以满足日常开发的需要,在实际的开发中,可以根据实际人员和项目的权限安排,进行相应的配置。

原创粉丝点击