`
komei
  • 浏览: 89110 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

window subversion

阅读更多
第一步,安装Apache+Subversion
首先,我选择了apache_2.0.59+svn-1.4.3的组合
下载安装apache_2.0.59版本,http://ftp.ntu.edu.tw/Apache/httpd/binaries/win32/
把Subversion/bin下面所有.dll文件复制到Apache Group\Apache2\bin下,提示有文件覆盖,选择不覆盖;再将Subversion/bin下的.so文件复制到Apache Group\Apache2\modules下。

第二步,修改apache的配置文件
接著打开Apache HTTP Server 的 httpd.conf(在 /conf/ 目录下),先找到以下两行:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
把這两行最前面的 '#' 字符刪除,然后把下面这行加到这些 LoadModule 指令的后面:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
用记事本打开 Apache HTTP Server 的 httpd.conf,在文件最后面加上以下几行:
#<Location /svn>
    DAV svn
    #give the repository path
    SVNParentPath "e:/svn"
    #Satisfy Any   
   # AuthType Basic
    #AuthName "subversion repository"
    #AuthUserFile "C:/Program Files/Apache Group/Apache2/svn-auth-filename"
    #(保存用户名和密码)
    #Require valid-user
    #SSLRequireSSL
    #AuthzSVNAccessFile "C:/Program Files/Apache Group/Apache2/svn-access-filename"
    #(保存用户访问的权限策略)
#</Location>
其中d:/svn为你要建的仓库的父目录(必须为本地目录),最好用双引号引一下.

第三步,创建仓库
根据apache的配置文件的设置建立目录:d:/svn.然后我们就可以在下面建立仓库了,创建方法如下:
c:\>svnadmin create d:/svn/repository
命令执行成功之后,会在d:/svn/repository下面生成很多的文件和目录

第四步,使用
重新启动Apache Server
在浏览器中输入网址:
http://localhost/svn/repository/
这时候,看到页面显示:

Revision 0: /
Powered by Subversion version 1.3.2 (r19776).

*****************************************************************
4
创建用户
Apache的 ..\apache\Apache2\bin文件下自带的程序:htpasswd.exe 即可完成用户创建。
C:\Apache Group\Apache2\bin>htpasswd –cm /path/fileName admin
好了,这样就在指定的路径处创建了一个指定名字的用户文件,并创建了一个用户名admin。其中c表示要创建新的文件,m表示要创建账户。这时候,会提示输入密码,并要求验证:
New password: *****
Re-type new password: *****
Adding password for user admin
好了,一个账号建好了。可以接着建用户:
C:\Apache Group\Apache2\bin>htpasswd –m /path/fileName kevinl
New password: ******
Re-type new password: ******
Adding password for user kevinl
注意,因为第一次已经创建了文件,此处只需要-m 即可,不需要c了。

Ok,现在用户文件建好了。打开apache的httpd.conf文件,将…< Location>改为:


DAV svn
#give the repository path
SVNPath /absolute/path/to/repository

AuthType Basic
AuthName “Xi’an server of NA mirror”
AuthUserFile /path/to/passwd/fileName
Require valid-user


如果已经有一个apache服务,希望两个apache服务同时运行,则修改其中一个的服务端口。
修改httpd.conf中的一行: Listen 80 将80改成其他不用的端口号

5  权限管理

这同样需要一个权限管理文件。首先在httpd.conf中指定这个文件.

AuthzSVNAccessFile / path/to/auth_access_police_file



下面我们来讨论如何写权限管理文件.

这之中权限有三个等级:读写,读,无,分别为(rw, r, 空)

权限文件中以空行分开多个单位。每个单位定义对一个文件的权限管理。此外,为了方便管理我们可以将用户分组。分组用一个单位,一般位于文件的前面。如下:

[groups]

calc-developers = harry, sally, joe

paint-developers = frank, sally, jane

admin = joe, frank, sally, jane



形式如下:
建立控制用户访问权限的文件svn-access-filename
 [svn1:/]               //这表示,仓库svn1的根目录下的访问权限
 harry = rw             // svn1仓库harry用户具有读和写权限
 sally = r               // svn1仓库sally用户具有读权限
 [svn2:/]               //svn2仓库根目录下的访问权限
 harry = r               // harry用户在svn2仓库根目录下只有读权限
 sally =               // sally用户在 svn2仓库根目录下无任何权限
 [svn2:/src]           //svn2仓库下src目录的访问权限
 harry=rw            
 sally=r
 [/]                  // 这个表示在所有仓库的根目录下
 * = r               // 这个表示对所有的用户都具有读权限
 [groups]               // 这个表示群组设置
 svn1-developers = harry, sally           // 这个表示某群组里的成员
 svn2-developers = sally
 [svn1:/]           
 @svn1-developers = rw       // 如果在前面加上@符号,则表示这是个群组权限设置
 
然后修改httpd.conf配置:
<Location /svn>
DAV svn
SVNParentPath /svn
AuthType Basic
AuthName “Subversion repository”
AuthUserFile /svn-auth-filename (保存用户名和密码)
Require valid-user
AuthzSVNAccessFile /svn-access-filename(保存用户访问的权限策略)
</Location>

[calc:/trunk/]

harry = rw

sally = r

@=rw

设置calc工程中/trunk的权限.其中harry对其有读和写权限,sally有读的权限,组admin有读写权限(注意,组名前面有一个@符号).

上面定义针对多个库的情况,若只有一个可写为:

[ /trunk/]

harry = rw

sally = r

若要设置所有用户对根目录的权限,为:

[/]

*=r



权限管理的工作原理:默认情况下对所有文件夹是有读写权限的;对于父文件的权限会被子文件夹和文件继承;对于子文件权限的定义会覆盖由父文件继承来的权限规则。当某用户访问某一文件夹时,首先会寻找是否对此文件夹下此用户进行了设置,若设置了就采用该规则;否则,就找他的父文件夹,若还是没有对该文件夹定义,则继续向上。直到根目录。若仍没有,就采用默认。



Ok。如果我们向增加安全性,可以让apache采取SSL方式发布,需要两步,首先是制作证书,然后是配置管理文件.

6  制作证书.

有两种方式,使用openssl和使用第三方工具opesnVPN.

A 使用openssl。

你需要准备openssl.exe和openssl.cnf。

openssl.exe在..\apache\Apache2\bin下(注意只有支持SSL的apache安装后才有,也可下载http://hunter.campbus.com/);openssl.cnf下载http://tud.at/programm/openssl.cnf并拷贝到..\apache\Apache2\bin下.



好了,开始制作了,在命令行下定位到..\apache\Apache2\bin,运行:

$openssl req -config openssl.cnf -new -out active.csr

然后回答相关问题来制作一个证书active.csr.这个证书实际就是一个用公私密钥加密的文本文件,它需要被第三方机构授权.

$openssl rsa -in privkey.pem -out active.key
得到密钥.
$openssl x509 -in active.csr -out active.cert -req -signkey active.key -days 4000

得到使用密钥加密了的证书,有效期为4000天.

$openssl x509 -in active.cert -out active.der.crt -outform DER

Der形式的证书。



好了,现在,我们有文件:

l        active.der.crt(certificate of DER style)
l        active.csr
l        active.key(private key)
l        .rnd,
l        privkey.pem
l        active.cert(certificate of PEM style)
7 配置文件

把文件active.der.crt和active.key拷贝到..\Apache Group\Apache2\conf\ssl

打开文件httpd.cnf,将下面行前的注释去掉:

LoadModule ssl_module modules/mod_ssl.so

打开文件..\Apache Group\Apache2\conf\ssl.cnf,确保以下行是没有注释掉的.

DocumentRoot "../Apache Group/Apache2/htdocs"

ServerName www.active.com:443

ServerAdmin eric.du@active.com

ErrorLog logs/error_log

TransferLog logs/access_log

SSLMutex default

SSLRandomSeed startup builtin

SSLSessionCache   none

(SSLSessionCache确保其他行是注释的)

做以下两个更改:

SSLCertificateFile conf/ssl.crt/server.crt
               -à SSLCertificateFile conf/ssl/active.der.crt
SSLCertificateKeyFile conf/ssl.key/server.key
                --> SSLCertificateKeyFile conf/ssl/active.key
去掉或注释以下两行:

# ifDefine SSL
# ifDefine

好了,重启apache,测试访问:https://localhost和https://localhost/svn.
现在我们可以通过http和https两种方式访问.如果我们强制要求使用https或对http自动重定向为https.就需要参考下面:
8 强制SSL和自动重定向
打开httpd.conf,进行配置.

如果只是要求subversion库使用此策略,则就将下面的命令放在…< Location>中,若是整个apache,则放在…中.

1) 强制

SSLRequireSSL

2) 自动重定向

RewriteEngine        on

RewriteCond          %{REMOTE_ADDR} !^172\.31\.224\.[0-9]+$

RewriteCond          %{HTTPS} !on [NC]

RewriteRule          .* - [F]

分享到:
评论
1 楼 wsbjwjt 2007-10-18  
我要试一下

相关推荐

    Windows下Subversion配置管理员指南

    Windows下Subversion配置管理员指南  以前的svnserve要想成为windows服务,必须依赖于svnservice或其他工具。从Subversion1.4开始,Subversion本身就集成Windows服务的工具。 1,安装svnservice  在Windows NT...

    Setup-Subversion-1.6.5.msi TortoiseSVN-1.7.6.22632-win32-svn-1.7.4.msi

    Setup-Subversion-1.6.5.msi TortoiseSVN-1.7.6.22632-win32-svn-1.7.4.msi新版的安装文件,支持window 32位操作系统,本人亲测试通过。

    Window下的SVN+APache

    Window下的SVN+Apache搭建往往出现版本不一致造成的搭建错误,apache_2.2.14-win32-x86-openssl-0.9.8k.msi在网站可以下到,但是 Setup-Subversion-1.6.6.msi无法在官网下载,希望对你有帮助

    subversion-deps-1.6.17

    版本控制系统,是cvs的进一步的发展,它不仅可以用于程序开发人员团队开发,也可以用在其它的各方面,比起复制和粘贴来就高效得多,也更好的管理,当官方移到apache是了,就只有源码,没有二进制码,这个是window编译...

    Subversion服务器端安装及配置手册

    在window系统下,配置Apache,SVN服务器 请下载

    tortoiseSVN代码管理软件,window64位

    TortoiseSVN 为 Subversion 提供了一个简单易用的用户界面。由于它不是针对特定 IDE(例如 Visual Studio,Eclipse 或其他 IDE)的集成,因此可以将其与所需的任何开发工具以及任何类型的文件一起使用 TortoiseSVN ...

    Svn客户端Window_x32

    TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去...

    plsqldev14.0.1.1965x32多语言版+sn.rar

    File Browser directory popup items added for Git Clone and Subversion Checkout Change All Lines popup menu item added to the Diagram Window Fixes for multiple monitors with different display scaling ...

    plsqldev14.0.1.1965x64多语言版+sn.rar

    File Browser directory popup items added for Git Clone and Subversion Checkout Change All Lines popup menu item added to the Diagram Window Fixes for multiple monitors with different display scaling ...

    Git-2.18.0 window下载

    Git Windows客户端是一个免费的开源分布式版本控制系统,旨在...Git PC版易于学习,速度快,使得它超越了Subversion,CVS,Perforce和ClearCase等SCM工具,具有便宜的本地分支,便捷的登台区域和多种工作流程等功能。

    VisualSVN.1.7.3

    You never have to open a separate “diff” window to see what you have changed. And you don't have to hunt for changes. Quick Revert uses the Quick Diff color coding to allow you to easily restore ...

    CollabNetSubversion-client-1.6.12-1.win32.exe

    svn 客户端命令行工具 在window里使用svn一般都是图形界面方式,但是要做高级处理例如批处理下载多个项目代码此时就需要命令行方式。

    TortoiseSVN-1.8.2中文手册

    TortoiseSVN-1.8.2中文手册,针对window平台的subversion客户端, version 1.8

    plsqldev14.0.0.1961x32多语言版+sn.rar

    Window icons now indicate the PL/SQL Developer window type. Connection status icon moved to the left for consistency. Session Window enhancements You can now define Session Actions that can be ...

    plsqldev14.0.0.1961x64多语言版+sn.rar

    Window icons now indicate the PL/SQL Developer window type. Connection status icon moved to the left for consistency. Session Window enhancements You can now define Session Actions that can be ...

    SVN客户端(windows系统64位)

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。

    Git安装包 windows 64位

    与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux内核这样的大项目来说...

    Git-2.32.0-64-bit-for-windows-64

    Git 是一个免费的开源 分布式版本控制系统,旨在快速高效地处理...它优于 Subversion、CVS、Perforce 和 ClearCase 等 SCM 工具,具有便宜的本地分支、方便的暂存区和 多个工作流等功能。 只适用windows 64位的系统

    TortoiseSVN使用简介

    •2 什么是SVN(Subversion)? •3 为甚么要用SVN? •4 怎么样在Windows下面建立SVN Repository? •5 建立一个Working目录 •6 新增档案及目录到Repository中 •7 更新档案及目录 •8 更新至特定版本 •9 ...

    Linux之centos7环境搭建SVN服务器.docx

    SVN是subversion的缩写,是一个开放源代码的版本控制系统,本文介绍了安装SVN服务的环境要求,介绍了centos7环境下安装SVN服务的步骤,介绍了svn Edge访问规则配置,svn服务器配置和window客户端的安装及配置。

Global site tag (gtag.js) - Google Analytics