分类: LINUX
2010-12-02 13:53:24
1. 软件下载
Apache 2.2
(这里有2.2.11为例)
下
载文件:apache_2.2.11-win32-x86-openssl-0.9.8i.msi
(注意,如果打算用到HTTPS,请下载包含
openssl的版本)
Subversion (这里以1.5.3为例)
下
载文件:Setup-Subversion-1.5.3.msi
(此文档来源: ,原创作者: 鱼漂; 转载请注明)
2.
安装规划
Apache2.2的安装路径为 D:\www\Apache
Subversion的安装路
径为D:\www\Subversion
Subversion Repository的路径为D:\www\svnRep
3.
安装
运行apache_2.2.11-win32-x86-openssl-0.9.8i.msi安装到D:\www\Apache目
录,端口为80
运行Setup-Subversion-1.5.3.msi安装到D:\www\Subversion,
安装时选择"Binding for Apache 2.2.x"
4.
配置Subversion Repository
A.初始化Repository
手
动创建D:\www\SVNRep目录;
打开DOS命令行cmd,进入D:\www\subversion\bin目录,运行以下命令初始化
Repository:
D:\www\Subversion\bin>svnadmin
create D:\www\SVNRep
B.创建Repository目录结构
在
D:\www\tmp目录下创建以下目录结构:
――ProjectOne
| |
| ――branches
| |
|
――tags
| |
| ――trunk
|
――ProjectTwo
|
――branches
|
――tags
|
――trunk
使
用以下命令,导入到Subversion:
D:\www\Subversion\bin>svn
import D:\www\tmp file:///D:/www/SVNRep/ -m "init"
(需要特
别注意的是file:///D:/www/SVNRep/的语法,这里是正斜杠)
导入完后,D:\www\tmp可以删除了
5.
配置Apache
复制D:\www\Subversion\bin目录
下的mod_dav_svn.so,mod_authz_svn.so到D:\www\Apache\modules目
录。
配置Apache的conf/httpd.conf文件,在很多#LoadModule的后面,加下:
LoadModule dav_module modules/mod_dav.so
LoadModule
dav_svn_module modules/mod_dav_svn.so
#LoadModule authz_svn_module
modules/mod_authz_svn.so
DAV svn
SVNPath
"D:/www/SVNRep"
AuthType Basic
AuthName "TomZhou's SVN"
AuthUserFile
"D:/www/Apache/conf/svn.passwd"
Require valid-user
使
用Apache和htpasswd创建D:/www/Apache/conf/svn.passwd文件:
D:\www\Apache\bin>htpasswd -c -m
D:\www\Apache\conf\svn.passwd tomzhou
New password: ********
Re-type
new password: ********
Adding password for user tomzhou
D:\www\Apache\bin>htpasswd -m
D:\www\Apache\conf\svn.passwd ipaddr
New password: ********
Re-type
new password: ********
Adding password for user ipaddr
D:\www\Apache\bin>
注
意,需要先进入到D:\www\apache\bin目录运行,同时,使用"-c"参数创建密码文件,第二次添加用户时不需要"-c"
重启
Apache即可进行测试了。打开IE访问以下进址:
输
入刚才创建的用户名和密码,即可访问了。
6.按不同的目录定义权限
可
以使用mod_authz_svn.so来实现,Apache配置如下:
LoadModule dav_module modules/mod_dav.so
LoadModule
dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module
modules/mod_authz_svn.so
DAV svn
SVNPath
"D:/www/SVNRep"
AuthType Basic
AuthName "TomZhou's SVN"
AuthUserFile
"D:/www/Apache/conf/svn.passwd"
AuthzSVNAccessFile
"D:/www/SVNRep/conf/authz.conf"
Require valid-user
使
用上面的方法,创建svn.passwd文件。
创建D:/www/SVNRep/conf/authz.conf文件,内
容如下:
#两个分
组:committers,developers
[groups]
committers = tomzhou ipaddr
richard
developers = jimmy michel spark sean
#在根目录下指定所有的用户有读权限
[/ProjectOne]
* = r
#追加 committers 组用户有读写权限
@committers = rw
#在
branches/dev 目录下指定 developers 组的用户有读写权限
[/ProjectOne/trunk]
@developers
= rw
#在 /tags 组下给予用户 tony 读写权限
[/ProjectOne/tags]
tomzhou =
rw
#禁止所有用户访问 /private 目录
[/ProjectOne/private]
* =
#给
committers 组用户读权限
@committers= r
另外,你还
可以结合Apache的Allow,Deny,Order,Satisfy等指令来配置基于IP的访问规则。
其
它参考:
a.HTTPS的配置只渗及到Apache,可参考我的其它文章或CATools工具.
b.Linux
下的配置方式大同小异.
c.Subversion官方的文档,对Subversion的使用和配置描述得非常清楚,有时间可以参考.