`
komei
  • 浏览: 90966 次
  • 性别: 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  
我要试一下

相关推荐

    Apache-Subversion-1.14.2

    Apache Subversion(简称 SVN)是一个开源的版本控制系统,用于管理和跟踪文件和目录的变更。它允许团队成员协同工作,共享和追踪项目代码的不同版本。下面是一些关于 Apache Subversion 的要点: 版本控制:SVN ...

    eclipse的subversion插件

    【Eclipse的Subversion插件Subclipse详解】 Subversion(SVN)是一种广泛使用的版本控制系统,它可以跟踪文件和目录的变化,允许团队成员协同工作。Eclipse IDE中的Subclipse插件为开发者提供了方便的Subversion...

    使用SUBCLIPSE——针对ECLIPSE的SUBVERSION插件

    重启后,你可以在`Preferences`对话框中看到新增的SVN设置,同时也可以通过`Window -&gt; Show View -&gt; Other...`菜单添加与Subversion相关的视图,如`SVN Repository`和`SVN Resource History`。这两个视图对于日常...

    subversion及myeclipse的svn插件安装文档

    Subversion(SVN)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的历史记录。在本教程中,我们将深入探讨如何在CentOS 6环境下安装Subversion 1.7版本,以及如何在MyEclipse集成开发环境中安装...

    项目版本控制器SVN的环境建立(Subversion,subclipse

    这可以在“Window” &gt; “Preferences” &gt; “Team” &gt; “SVN”中完成。 - **使用Subclipse**: 一旦配置好,你就可以直接在Eclipse中执行常见的SVN操作,如检出、提交、更新、解决冲突等,大大提高了开发效率。 4. *...

    Windows下Subversion配置管理员指南

    ### Windows 下 Subversion 配置管理员指南 #### 一、Subversion 与 Windows 服务集成 随着 Subversion 的不断更新与发展,从 Subversion 1.4 版本开始,其自身集成了支持 Windows 作为服务的功能,这标志着不再...

    MyEclipse 7.0与SVN(subversion)-

    安装完成后,打开MyEclipse,选择"Window" -&gt; "Preferences" -&gt; "Team" -&gt; "SVN",点击"Add"按钮,添加已安装的SVN插件。这里,我们可能会用到MyEclipse内置的SVN插件,如Subversive或Subclipse。 接下来,我们需要...

    Myeclipse SVN插件subversion.rar

    在Myeclipse的"Window"菜单中选择"Preferences",然后找到"Team" -&gt; "SVN",点击"Add"添加新的SVN仓库URL。输入仓库地址,设置用户名和密码,完成配置。 5. 使用Myeclipse SVN插件: - **导入项目**:可以从SVN仓库...

    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位操作系统,本人亲测试通过。

    Setup-Subversion-1.8.11.zip

    3. **配置SVN连接**: 安装插件后,打开Eclipse的"Window" -&gt; "Preferences" -&gt; "Team" -&gt; "SVN",配置 SVN 的全局设置,包括SVN的安装路径、认证信息等。 4. **导入或创建项目**: 在Eclipse中,你可以选择"File" -&gt;...

    WindowBuilder_for_Eclipse4.4

    7. **扩展性和兼容性**:WindowBuilder能够与Eclipse的其他插件协同工作,如Mylyn任务管理器或Subversion版本控制系统。同时,它也兼容不同版本的Eclipse,本例中是Eclipse 4.4。 在提供的压缩包文件中,我们看到...

    eclipse window SVN插件

    标题提到的"eclipse window SVN插件",实际上指的是要在Eclipse上安装的Subversion客户端工具,以便开发者能够在IDE内部进行版本控制操作,如提交、更新、查看历史版本等,而无需离开Eclipse。这个过程通常包括以下...

    Window下的SVN+APache

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

    window7 安装svnserver

    在Windows 7操作系统中安装Subversion(简称svn)服务器,主要涉及到的是版本控制系统的一个关键组件——SVN Server,它允许团队成员协作开发项目,管理代码版本。VisualSVN是一款流行的、易于使用的Subversion...

    Eclipse插件Subversive - Subversion (SVN)

    你可以通过 "Window" -&gt; "Preferences" -&gt; "Team" -&gt; "SVN" 来验证其设置,并配置 SVN 客户端连接信息,例如 SVN 的服务器地址、用户名和密码。 Subversive 与 Eclipse 的集成,大大提升了开发人员的工作效率,使得...

    window64位的SVN 1.81

    SVN,全称为Subversion,是一款广泛应用于软件开发领域的版本控制系统。它允许团队成员协同工作,跟踪文件和目录的变更,使得多人合作时能够高效、安全地管理代码库。Window 64位的SVN 1.8.1是专为在64位Windows操作...

    window搭建SVN服务器详解

    在Windows环境下搭建SVN(Subversion)服务器是一个常见的任务,尤其对于软件开发团队而言,它是一种重要的版本控制系统,用于管理代码和其他项目文件的历史版本。本文将深入讲解如何在Windows上设置一个功能齐全的...

    subversion-deps-1.6.17

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

    SVN服务器端和客户端 window64

    SVN(Subversion)是一种版本控制系统,用于管理软件项目中的源代码和其他文件的变更历史。在软件开发过程中,SVN可以帮助团队协同工作,跟踪每次修改,回滚错误的改动,以及保持代码库的一致性。在这个“SVN服务器...

Global site tag (gtag.js) - Google Analytics