您的位置:首页 > 运维架构 > Apache

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

2009-03-23 14:57 483 查看
初步实现了Apache2.2.9+Subversion1.5.5在windows下的配置与权限设置

1.
安装Apache2.2.9(http://httpd.apache.org/download.cgi

选择:

Win32 Binary without crypto (no mod_ssl) (MSI Installer):
apache_2.2.9-win32-x86-no_ssl-r2.msi
[PGP] [MD5]
在安装过程输入信息前两项Network Domain和Server Name中都输入localhost,下面那个email就随便了,如果机器安装了iis并且启动中,要先把iis服务停掉。否则会和apache的监听端口冲突的。

2.下载SVN1.5(如果是1.4.6版本则有exe二进制安装文件,而1.5目前只有source版,解压下来即可用)

(我安装的是1.5.5版本:
http://subversion.tigris.org/files/documents/15/44589/svn-win32-1.5.5.zip

(先安装了之前的版本:1.4.6,然后弄1.5.5的拷过去覆盖安装的目录文件)

将/svn安装路径/bin中的文件mod_dav_svn.so和mod_authz_svn.so,将它们拷贝到Apache的modules目录,复制%SVN_HOME%/bin/libdb44.dll、libeay32.dll、以及
ssleay32.dll到%APACHE_HOME%/bin

然后,使用记事本之类的文本编辑器编辑Apache的配置文件/conf/httd.conf做如下修改:

去掉以下行的注释(将开头的#删除):

#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

* 完成以上步骤也就完成了Apache2.2.9 + svn1.5的基本配置

现在关闭Apache服务器,再重启,会发现Apache控制台的状态栏出现Subversion的信息

如:Apache/2.2.9(Win32) SVN/1.5 DAV/2

这就说明已经成功的将Subversion集成到了Apache当中

3.下载并安装TortoiseSVN(http://tortoisesvn.tigris.org/

(我安装的是1.5.5版本)

根据向导安装好后,创建版本库E:/svnroot/ delete(库名),右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式,这里使用默认即可, 然后就创建了一系列目录和文件。

4.修改Apache的配置文件

在Apache的配置文件/conf/httd.conf文件的尾部添加

<Location /svn/delete>
DAV svn
SVNPath E:/svnroot/delete

AuthzSVNAccessFile E:/svnroot/delete/conf/access.auth

Satisfy Any
Require valid-user

AuthType Basic
AuthName "Subversion repositories"
AuthUserFile
E:/svnroot/delete/conf/users.auth
Require valid-user
</Location>

设置解释<Location /svn>意思是Subversion版本库的URL是http://MyServer/svn/DAV
svn告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。SVNListParentPath on对于Subversion1.3或者更高版本,这个指示表示显示所有SVNParentPath下的版本库。SVNParentPath
告诉Subversion需要查看的版本库位于SVN之下AuthType Basic激活基本认证,就是用户名/密码AuthName "Subversion repositories"用来说明何时弹出要求用户输入认证信息的认证对话框AuthUserFile
passwd指定使用的认证密码文件AuthzSVNAccessFile位置Subversion版本库的访问控制文件的路径Require valid-user指定只有输入了正确的用户/密码的用户可以访问URL

接下来我们创建认证所需的两个文件:用户文件users.auth和权限文件access.auth,users.auth可以用Apache安装目录下bin目录中的htpasswd.exe程序生成,具体生成方法如下:

我的Apache安装路径是:D:/Program Files/Apache Software Foundation/Apache2.2/

打开命令窗口,进入到D:/Program Files/Apache Software Foundation/Apache2.2/bin,

在命令行中使用如下命令:htpasswd –cb users.auth svnadmin(用户名) svnadmin(密码)回车就可以了

命令行中的参数-c表示创建一个文件,第一次运行创建好了,再添加别的用户的时候就

不要再使用这个参数了,如我再添加yanyan用户

htpasswd –b users.auth yanyan yanyan这样建立的用户密码默认使用的MD5加密,你打开文件以后看到的可能就是如下格式:

svnadmin:7Z/80Al6$WTqVrBgshc/Bxi6YYkUga1$apr1$

yanyan:kNrG459T$qfAZ7MpgpFcdd2xp25gST1$apr1$

到此我们就添加好了svnadmin,yanyan两个用户,他们的密码分别为svnadmin
和yanyan

* 配置认证权限文件access.auth

可以和users.auth文件在同一目录下建立access.auth文件即可,然后填入如下内容

[groups]

admin = svnadmin #管理用户组
dev = yanyan,svnadmin #开发用户组

[/]

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

[/aaa]

@admin = rw #设定管理组成员对aaa目录有读和写权限

@dev = #设定dev组成员对aaa目录没有任何权限

[/bbb]

@admin = #设定管理组成员对bbb目录没有任何权限

@dev = rw #设定dev组成员对bbb目录有读和写权限

[/ccc]

@admin = #设定管理组成员对ccc目录没有任何权限

@dev= #设定dev组成员对ccc目录没有任何权限

到此我们为不同用户分组定义了权限,大家可以使用不同的用户

进行browse/import/checkout试验

访问路径为http://localhost/svn
或者http://ip/svn/...

--------------------------------
*配置多仓库的用户权限

* 首先在建立一个仓库delete2

* 在E:/svnroot目录下创建delete2子目录

*
然后执行svnserve create E:/svnroot/delete2建立仓库delete2

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

加入的代码修改如下:

<Location /svn>

DAV svn

SVNParentPath E:/svnroot

AuthzSVNAccessFile E:/svnroot/access.auth
(权限文件)

Satisfy Any

Require valid-user

AuthType Basic

AuthName "Subversion repositories"

AuthUserFile E:/svnroot/users.auth (用户和密码文件)

Require valid-user

* 认证用户文件users.auth不需要做任何修改

* 认证权限文件access.auth修改如下:

[groups]

admin = svnadmin #管理用户组
dev = yanyan,svnadmin #开发用户组

[delete1:/]

* = r

[delete1:/aaa]

@admin = rw #设定管理组成员对aaa目录有读和写权限

@dev = #设定dev组成员对aaa目录没有任何权限

[delete1:/bbb]

@admin = #设定管理组成员对bbb目录没有任何权限

@dev = rw #设定dev组成员对bbb目录有读和写权限

[delete1:/ccc]

@admin = #设定管理组成员对ccc目录没有任何权限

@dev= #设定dev组成员对ccc目录没有任何权限

[delete2:/]

@svnadmin= #设定dev1组成员对delete2仓库没有任何权限

@dev= #设定dev2组成员对delete2仓库没有任何权限

到此我们为不同用户分组对不同仓库定义了权限,大家可以使用不同的用户

进行browse/import/checkout试验

仓库1访问路径为http://localhost/svn/delete1

仓库2访问路径为http://localhost/svn/delete2
对父目录http://localhost/svn/,任何用户都没有任何访问权限

5.总结

经过以上几个部分的介绍,初步实现了Apache2.2.9+Subversion1.5.5(for Apache2.2.X)在windows下的配置与权限设置,并且根据单仓库和多仓库的不同情况,进行了分别的分析与配置,基本可以满足日常开发的需要,在实际的开发中,可以根据实际人员和项目的权限安排,进行相应的配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: