`
ictch
  • 浏览: 135458 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

 

注意:目前windows下的subversion只能跟Apache2.0.x配合,不能用于Apache2.2.x,除非你自己编译在所有的Subversion服务器配置方式中,基于Apache的是最灵活的。虽然配置起来有一点点复杂,但是它提供了其它方式所没有的好处:

WebDAV
基于Apache配置的Subversion服务器使用了被许多其它程序支持的WebDAV协议。举个例子,你可以在Windows的资源管理器中将这样的一个版本
库挂载成一个“Webfolder”,然后像文件系统中的其它文件夹一样访问它。

浏览版本库
你可以在不安装Subversion客户端的情况下,使用浏览器来浏览版本库中的内容。这将使得更大范围的用户可以访问你的数据。

用户验证
你可以使用任何Apache支持的验证机制,包括SSPI和LDAP。

安全
Apache是非常的稳定和安全,因此你的版本库自然而然地拥有同样的安全性。包括SSL加密。

2. 安装过程
2.1. 安装Apache
安装Apache前,你要有一台运行Windows2000、Windows XP + sp1或Windows2003的电脑。

警告:请注意,没安装Service Pack 1的Windows XP将导致错误的网络数据从而破坏你的版本库!

http://httpd.apache.org/download.cgi 下载最新版本的Apache Web服务器。确保你下载的版本大于2.0.54。2.0.54版本的Apache将不能与
Subversion 1.3.xx配合工作。而且,小于2.0.54的Apache也因为在windows上的编译存在一个bug而导致不能与subversion1.2配合使用。

一旦你已经有了Apache2的安装程序,你可以双击它,它将引导你完成整个安装过程。请确保你输入正确的服务器URL(如果你的服务器没有DNS
名称,你可以直接输入IP地址)。我建议你将Apache安装成 for all Users,on Port 80,as a service。注意:如果你已经有一个IIS或者其它
的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下的Apache Group\Apache2\conf目录中找到文件httpd.conf,将其中的
Listen 80改成一个不用的端口,比如Listen 81。然后重新运行这个安装程序,这次应该不会再有问题了。

现在你可以在你的浏览器中键入 http://loccalhost/,如果呈现了一个已经配置好的网站,那么你的Apache就安装成功了。

警告:

如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apache创建一个单独的用户来运行它将会更安全一些。

请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录->属性->安全)。要不然,用户将无法提交他们的更改。

就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。

如果没有为Apache配置这个许可,用户将会得到"禁止访问"的错误信息,在Apache的错误日志中表现为错误500。

2.2. 安装Subversion
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 (英文)

http://www.iusesvn.com/bbs/forumdisplay.php?fid=7(中文)下载最新版本的Subversion。

运行Subversion安装程序,如果安装程序能够识别你已经安装了Apache,那么你的安装基本上就OK了。如果它不能,那么你要做一些额外的步
骤。
注:如果你先安装Apache,再安装Subversion,正常情况下下面的工作(2.3配置前)Subversion安装程序已经帮你完成了
使用资源管理器,进入Sibversion的安装目录(通常为c:\program files\Subversion),找到文件httpd/mod_dav_svn.so和mod_authz_svn.so
,将它们拷贝到Apache的modules目录(通常为c:\program files\apache group\apache2\modules)。

从Subversion的安装目录拷贝文件libdb43.dll到Apache的modules目录。

使用如记事本之类的文本编辑器编辑Apache的配置文件(通常为c:\program files\apache group\apache2\conf\httd.conf),修改以下内容:

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


CODE:
#LoadModule dav_fs_module modules/mod_dav_fs.so 
#LoadModule dav_module modules/mod_dav.so

在LoadModule节的最后添加以下两行:
CODE:
LoadModule dav_svn_module modules/mod_dav_svn.so 
LoadModule authz_svn_module modules/mod_authz_svn.so

2.3. 配置
现在,你已经安装了Apache和Subversion,但是Apache还不知道如果处理像TortoiseSVN一样的Subversion客户端。要让Apache知道哪个URL将
被Subversion使用,你要像下面这样编辑Apache的配置文件(通常在c:\program files\apache group\apache2\conf\httpd.conf):

在配置文件的最后添加下面这些行:
CODE:
<Location /svn>
DAV svn
SVNParentPath D:\SVN 
AuthType Basic 
AuthName "Subversion repositories" 
AuthUserFile D:\passwd 
#AuthzSVNAccessFile D:\svnaccessfile 
Require valid-user 
</Location>
这样配置表示:你所有的版本库将位于D:\SVN目录下,要访问你的版本库可以使用这样的URL:http://MyServer/svn/,访问权限将由passwd文
件中的用户名/密码来限制。
要创建passwd文件,可以打开命令行(DOS窗口),将当前目录切换到apache2目录(通常为c:\program files\apache group\apache2),然后打
入以下命令以创建文件:
CODE:
bin\htpasswd -c passwd <username>
重启Apache服务。
将你的浏览器指向http://MyServer/svn/MyNewRepository(MyNewRepository是你之前创建的Subversion版本库)。如果一切正常,你将被提示
输入用户名密码,输入正确的用户名密码后你就可以看到版本库中的内容了。
对你刚刚输入的apache配置作一些简短的说明:
QUOTE:
<Location /svn>
意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
DAV svn
告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNListParentPath on
在Subversion 1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库
SVNParentPath D:\SVN
告诉Subversion在目录D:\SVN下寻找版本库
AuthType Basic
启用基本的验证,比如用户名/密码对
AuthName "Subversion repositories"
当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthUserFile D:\passwd
指定D:\passwd用为密码文件用来验证用户的用户名及密码
AuthzSVNAccessFile D:\svnaccessfile
指定D:\svnaccessfile来限定各个用户或组在版本库中目录的访问权限
Require valid-user
限定用户只有输入正确的用户名及密码后才能访问这个路径
----------------------------------------

上面的配置仅仅是一个简单的示例。你还可以对Apache进行许许多多的配置。
1如果你想让所有用户对版本库都有读的权限而只有特定的用户才有写的权限,你可以将这行
CODE:
Require valid-user
改为
CODE:
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
2上面的配置使用了passwd文件将你所有的版本库作为一个单元来限定访问权限。如果你想获得更多的控制,如限定某个用户可以访问版本库中
的哪个目录,可以把下面这行的#去掉:
CODE:
#AuthzSVNAccessFile D:\svnaccessfile
然后用文本编辑器创建一个Subversion授权文件。Apache将确保只有有效的用户可以访问你的/svn位置,然后将用户名传到
AuthzSVNAccessFile模块,这样可以依据Subversion授权文件得到更精细的权限控制。注意,路径将被指定为[库:路径]或者简单的[路径]。如
果你不明确指定一个库,访问规则将应用到由SVNParentPath指定的目录下所有的版本库中。一个授权文件例子可能像这样:
CODE:
[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# 为所有库指定默认访问规则
# 所有人可以读,管理员可以写,危险分子没有任何权限
[/]
* = r
@admin = rw
dangerman =
# 允许开发人员可以完全访问他们的项目版本库
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# 文档编写人员对所有的docs目录有写权限
[/trunk/doc]
@docs = rw
# 培训人员可以完全访问培训版本库
[TrainingRepos:/]
@training = rw
2.4. 使用SSL来保护你的服务器
因为美国出口限制,默认安装的Apache服务器不支持SSL。但是你自己可以很容易地在其它地方下载到所需要的模块,然后安装它。

首先你需要SSL的必需文件。你可以http://hunter.campbus.com/ 或这里找到相应的软件包(或者下载本主题的附件1:
 附件: mod_ssl_etc.rar (2006-10-16 15:30, 595.45 K)
该附件被下载次数 110
)。然后只要将包解开将其中的mod_ssl.so拷到Apache的modules目录、openssl.exe、libeay32.dll、ssleay32.dll拷到bin目录、
conf/ssl.conf拷到conf目录。
在Apache的conf目录中用文本编辑器打开ssl.conf。
将下面这些行用#注释掉:
CODE:
DocumentRoot "c:/apache/htdocs"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog logs/error_log
TransferLog logs/access_log
修改
CODE:
SSLCertificateFile conf/ssl.crt/server.crt

CODE:
SSLCertificateFile conf/ssl/my-server.cert
修改
CODE:
SSLCertificateKeyFile conf/ssl.key/server.key

CODE:
SSLCertificateKeyFile conf/ssl/my-server.key
修改
CODE:
SSLMutex file:logs/ssl_mutex

CODE:
SSLMutex default
删除以下两行(如果有,我认为有错,删掉之后apache无法启动):
CODE:
<IfDefine SSL>
</IfDefine>
打开Apache配置文件(httpd.conf),去掉这行的注释
CODE:
#LoadModule ssl_module modules/mod_ssl.so
Openssl需要一个配置文件。你可以从这里下载一个可工作的版本http://tud.at/programm/openssl.cnf (或者本主题附件2:
 附件: openssl.cnf.rar (2006-9-10 19:11, 1.21 K)
该附件被下载次数 84
)。将它保存到bin/openssl.cnf。
下面你要创建一个SSL证书。你可以打开一个命令行窗口,然后cd到Apache安装目录(比如C:\program files\apache group\apache2),敲入
以下命令:
CODE:
bin\openssl req -config bin\openssl.cnf -new -out my-server.csr
你将被问及一句口令短语。请注意,不要使用简单的几个词,而应该输入一整个句子,比如一篇诗词的一部份,越长越好。同样,你还要输入
你的服务器URL。然后其它的问题都是可选问答的,不过我建议你也将它们填充。
下一步,敲入以下命令:
CODE:
bin\openssl rsa -in privkey.pem -out my-server.key
以及(注意,只有一行)
CODE:
bin\openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 4000
这样将创建一个4000天后才过期的证书。最后敲入:
CODE:
bin\openssl x509 -in my-server.cert -out my-server.der.crt -outform DER
这些命令在Apache目录下创建了一些文件(my-server.der.crt, my-server.csr, my-server.key, .rnd, privkey.pem, my-server.cert)。
将这些文件拷贝到目录conf/ssl
(比如C:\program files\apache group\apache2\conf\ssl),如果目录ssl不存在,你必须先创建一个。
重启Apache服务。
现在可以用类似这样的url来访问你的版本库了https://servername/svn/project
QUOTE:
强制通过SSL来访问
当你配置了SSL来提高版本库安全时,你可能想禁用无SSL的http访问方式,而只允许通过https访问。要达到这种效果,你要在<Location>块加
入另外一个指示器SSLRequireSSL。
一个示例<Location>块可能像这样:
<Location /svn>
DAV svn
SVNParentPath D:\SVN
SSLRequireSSL
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
以上介绍的配置为Apache多库方式,即一个location可以同时为多个版本库服务,
假设你的ip为192.168.0.1,在D:\SVN目录下建了两个版本库,proj1和proj2
可以分别用下面两个url来访问你的版本库
CODE:
http://192.168.0.1/svn/proj1
CODE:
http://192.168.0.1/svn/proj1
还有一种配置方式为Apache单库方式,即一个location只能为一个版本库服务,
配置时只要将上面的SVNParentPath改为SVNPath,同时将后面的路径由版本库的父目录改为版本库的目录
如:
CODE:
<Location /svn> 
SVNPath D:\SVN\proj1 
AuthType Basic 
AuthName "Subversion repositories" 
AuthUserFile D:\passwd 
#AuthzSVNAccessFile D:\svnaccessfile 
Require valid-user 
</Location>

 

分享到:
评论

相关推荐

    subversion+apache+svn服务器配置图解

    《Subversion、Apache与SVN服务器配置详解》 在IT领域,版本控制系统对于团队协作至关重要,Subversion(简称SVN)就是这样一款强大的工具。配合Apache服务器,我们可以搭建一个稳定且高效的SVN服务,实现代码的...

    linux下subversion+apache server搭建

    总之,搭建Linux下的Subversion服务器需要对Apache服务器的配置和Subversion的工作原理有深入理解。完成上述步骤后,团队成员即可通过网络方便地进行代码的版本控制和协作开发。在实际应用中,还需要考虑安全设置、...

    subversion+apache+TortoiseSVN安装说明

    2. **配置 Subversion 和 Apache** - 使用 `svnadmin` 工具创建版本库,例如:`svnadmin create d:/svn/repository`。 - 将 Subversion 相关的 DLL 文件(如 `int13_svn.dll`, `libdb44.dll`)从 Subversion 安装...

    SVN版本管理系统的安装(CentOS+Subversion+Apache+Jsvnadmin)安装步骤

    本文档详细介绍了 SVN 版本管理系统的安装步骤,包括安装 CentOS、Subversion、Apache 和 Jsvnadmin 等组件的详细过程。 标题解释 SVN 版本管理系统的安装(CentOS+Subversion+Apache+Jsvnadmin)安装步骤 本标题...

    持续集成-Subversion+Apache+Jsvnadmin+jenkins

    - Jsvnadmin访问问题:如果无法访问Jsvnadmin,可能需要检查Apache配置、防火墙设置或Jsvnadmin自身的配置。 总结起来,持续集成-Subversion+Apache+Jsvnadmin+Jenkins的搭建涉及到多个组件的配置和集成,每个环节...

    subversion+apache

    "Subversion + Apache" 是一个常见的版本控制系统与网络服务器的组合,用于管理和协作软件开发项目。Subversion(SVN)是开源的版本控制系统,而Apache是广泛应用的HTTP服务器,它们结合可以提供高效、安全的代码...

    Subversion 1.6.6+ Apache 2.2.14+ TortoiseSVN 1.6.6 安装配置总结版

    《Subversion 1.6.6 + Apache 2.2.14 + TortoiseSVN 1.6.6 安装配置完全指南》 在软件开发过程中,版本控制系统是必不可少的工具,它能帮助团队有效地管理代码变更,提高协作效率。Subversion(简称SVN)就是一款...

    Apache和Subversion集成安装与配置

    通过以上步骤,你就能成功地在Apache服务器上集成并配置Subversion,提供安全、高效的代码版本控制服务。这在团队协作开发中尤其重要,因为所有更改都能被追踪,冲突得以解决,而且可以轻松回滚到之前的版本。

    svn+apache 配置版本管理详细步骤以及安装包

    在IT行业中,版本控制是团队协作开发不可或缺的一部分,而Subversion(简称SVN)与...在配置过程中遇到问题,可以查阅Apache和Subversion的官方文档,或搜索相关教程以获取帮助。希望这份指南能对你的工作带来便利。

    Apache+ subversion+tortoiseSVN安装手册

    2. **安装 Subversion**: 获取适用于您操作系统的 Subversion 安装包,安装过程中注意配置选项,确保与 Apache 版本兼容。 3. **配置 Apache**: 打开 Apache 的配置文件(通常为 httpd.conf),添加 SVN 相关模块。...

    linux + apache + subversion安装和基本配置

    本文将详细讲解如何在Linux系统上安装和配置Apache Web服务器以及Subversion版本控制系统。 首先,Linux作为开源操作系统,是许多服务器的基础,其稳定性和安全性深受开发者喜爱。在本案例中,我们将使用它作为平台...

    再次奉献SVN+apache Server配置

    【标题】:“再次奉献SVN+apache Server配置” 在IT领域,版本控制系统是软件开发团队协作的重要工具,Subversion(SVN)就是其中的一员。这篇博客的标题“再次奉献SVN+apache Server配置”提示我们将深入探讨如何...

    subversion-1.9.5+apache-2.4.25安装步骤及安装包

    在这个"subversion-1.9.5+apache-2.4.25安装步骤及安装包"中,我们将探讨如何在操作系统上安装和配置这两个组件。 首先,让我们详细了解一下Subversion 1.9.5。这个版本是Subversion的一个稳定版本,它提供了一些新...

    apache+subversion配置说明 v1 8

    - 使用Web浏览器访问Apache配置的SVN路径,验证访问权限和功能。 通过以上步骤,你将成功地在Apache上配置Subversion,并实现了版本库的迁移,同时保留了提交日志。记得在生产环境中,还需要考虑安全性设置,如SSL...

    svn+apache+trac配置

    在本配置中,我们将通过Apache web服务器来部署Trac,实现通过Web访问项目管理和版本控制的功能。 1. **总体说明** Trac环境的搭建主要涉及以下组件: - Apache HTTP Server:作为Web服务器,负责处理HTTP请求并...

    Linux+svn+apache配置方法

    本文将详细介绍如何在Linux环境下配置Subversion (SVN) 和 Apache HTTP Server,以实现版本控制功能,并支持通过SVN客户端和Web浏览器两种方式进行访问。通过本教程,您将能够搭建一个稳定可靠的代码版本控制系统。 ...

    ubuntu linux 配置svn+apache+ssl

    【概述】 ...以上就是Ubuntu环境中配置SVN+Apache+SSL的详细步骤,包括安装、配置、权限设置以及SSL安全连接的建立。通过这样的设置,你的团队可以安全地协作开发项目,同时确保代码仓库受到保护。

    SVN+Linux+Apache配置.doc

    ### SVN+Linux+Apache配置详解 #### 一、前言 在进行软件开发的过程中,版本控制系统扮演着极其重要的角色。Subversion(简称SVN)作为一款广泛应用的版本控制系统,在团队协作开发中尤其不可或缺。本文旨在详细...

Global site tag (gtag.js) - Google Analytics