subversion+apache 配置

 

注意:目前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>

 

在Ubuntu上安装配置Subversion + Apache + SSL以及权限设置服务器 Apache是一个广泛使用的Web服务器,在Ubuntu上安装Apache可以为Subversion提供HTTP/HTTPS访问。本文将指导您在Ubuntu上安装和配置SubversionApache以及SSL证书,同时设置适当的权限。如果您计划使用HTTPS访问Subversion仓库,您需要配置SSL证书。现在,您已经成功安装配置SubversionApache和SSL,并设置了适当的权限。为了确保Subversion仓库的安全性,我们需要调整仓库所在目录的权限。您将被要求输入密码。 阅读详情

相关推荐

Ubuntu Linux下的Apache2和Subversion配置SVN服务

在Ubuntu Linux操作系统上配置Apache2和SubversionSVN)服务可以方便地进行版本控制和团队协作。本文将详细介绍如何在Ubuntu Linux上安装和配置Apache2和Subversion,以搭建一个SVN服务器。通过按照以上步骤,在Ubuntu Linux上配置Apache2和SubversionSVN)服务。这样,你就可以轻松地进行版本控制和团队协作,管理和访问SVN仓库中的文件。使用SVN客户端工具可以向SVN仓库添加和访问文件。现在,你的SVN服务器已经配置完成。

OUDKE的博客 385

Apache-Subversion-1.14.0.zip

subversion命令行工具。配置方法 https://blog.csdn.net/sayyy/article/details/109027382

Linux环境下ApacheSubversion的集成安装与配置指南

mod_dav_svn模块是ApacheSubversion的桥梁,它实现了WebDAV协议(Web-based Distributed Authoring and Versioning),让Apache能够通过HTTP直接访问Subversion仓库。这意味着用户可以通过标准的WebDAV客户端进行版本控制操作,如检出、提交、分支和合并等。mod_dav_svn模块将Subversion仓库映射为一个远程文件系统,使得仓库的内容可以通过HTTP(S)进行访问。

weixin_42443533的博客 970

subversion+Apache部署

    软件环境 操作系统:  Centos7.5 软件版本:  subversion-1.10.0   httpd-2.4.33  openssl-1.0.2o  apr-1.6.3  apr-iconv-1.2.2  apr-util-1.6.1  scons-3.0.0  serf-1.3.9 sqlite-amalgamation-3160200 安装包路径 #cd /mnt ...

松果177的博客 510

配置Apache+subversion的详细步骤

操作系统:linux(CentOS 6)软件:apache2.2,subversion1.6概述 使用apache的目的是想让客户端以http协议的方式与subversion服务器通信。要实现这个目的,必须能在客户通过apache访问subversion的仓库时,以subversion的插件接管对这些请求的处理。过程 1 先安装apache: yum -y install httpd2 再安装su...

mmdev 339

apache配置ssl的方法

本文主要实现在apache环境中,实现https的访问。 测试原因,在window环境下,使用apache2.2.8最新版本,集成openssl,下载地址:http://www.apache.org/dist/httpd/binaries/win32/apache_2.2.8-win32-x86-openssl-0.9.8g.msi 本文难易度为容易 1.首先安装apache,需要使得测试用ur...

man2old的专栏 283

Apache+subversion配置

Apache+subversion配置过程。一、工具准备Apache Web服务器:httpd-2.0.61.tar.gz Subversion源码包及依赖包:subversion-1.4.3.tar.gz ,subversion-deps-1.4.3.tar.gz都放到/home/project1下。 二,安装ApacheApache的安装要记得打开dav模块和动态模块选

一蓑烟雨 929

配置Subversion Apache TortoiseSVN

配置Subversion Apache TortoiseSVN 下载ApacheSubversion、TortoiseSVN我用的是:svn-win32-1.4.2.zipTortoiseSVN-1.4.1.7992-win32-svn-1.4.2.msiapache_2.0.59-win32-x86-no_ssl.msi1.安装apache...

weixin_30399155的博客 199

配置Subversion Apache tomcat

Subversion服务与客户端安装[Linux版] 一、基本组件及版本: 1、基本软件:

Domando 3238

基于ApacheSubversion权限配置

      由于我搭建的Subversion服务是基于Apache的,所以配置Subversion的权限,实际上就是配置Apache相关服务的访问权限。      翻看了一下TortoiseSVN的手册,发现配置过程很简单。      首先,打开Apache所在目录,进入conf目录,打开httpd.conf。在httpd.conf文件里,确保以下行已经添加:       DAV

zoogar的专栏 1112

小探Subversion Server 之 Apache配置

 安装到ApacheSubversion作为CVS的次代作品,Kerl真的是煞费苦心啊。现在我们就来看看如何配置它到ApacheServer。Subversion本身有一个自带的小server就是bin下的cvsserve ,通过svn://XXXX进行访问。同时支持ssh配置。但是弱点就是这个server对于权限和用户管理很弱,对于大型项目,必须将他挂在ApacheServer这样的重磅萨巴上。

走向资深架构师的旅程 1090

Apache & Subversion配置

I. CentOS Apache配置详解 (http://xuebingnanmm.javaeye.com/blog/629810) II.Subversion on CentOS (http://wiki.centos.org/HowTos/Subversion#head-2afd8f61ccc6de4477fde9a4bcc84720b86c17a9) III. How to customize the path of svn repository? The URL of sv

Bo Yang's Blog 679

Apache+Subversion安装配置

以前笔记本硬盘坏了,上面的SVN等也没办法恢复了,不过幸亏还没啥重要的东西,用自己的一个mini-pc装了个linux,顺便温习、记录下安装配置SVN的过程~方便自己,也方便需要的童鞋 一、安装配置SVN 1. 安装Subversion yum install subversion y 安装成功,可以通过“svn --version”查看SVN的版本信息   2. 建立仓库 mk...

Y1986810913的专栏 343

apachesubversion for windows配置详解

今天费了好大的工夫配置apachesubversion,其中遇到许多状况,不过最后还是搞定了。1、环境与版本• Windows 2000 Server • Apache HTTP Server: Apache_2.0.63-win32-x86-no_ssl.msi • Subversion: Setup-Subversion-1.5.1.en-us.msi • TortoiseSVN: TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi2、安装apache  首先

caiqiling的专栏 910

基于 Apache 的服务器Subversion安装与配置

源代码管理, 做为程序员来讲应该是经常使用的.在源代码管理中, 以Apache + Subversion的方式最为方便好用了. 对于这个安装配置, 其实很简单, 但如果是第一次搞, 可能还是会很郁闷的, 有些小细节需要掌握. 下面就以Windows2003上配置Apache + Subversion + TortoiseSVN来讲下如何配置. 一. 安装Apache 1. 在 http

vanseparis的专栏 3222

ApacheSubversion集成安装与配置

ApacheSubversion集成安装与配置 要准备的东西如下:1: http://httpd.apache.org/下载 apache_2.0.63-win32-x86-openssl-0.9.7m.msi 或 apache_2.0.63-win32-x86-no_ssl.msi2,http://subversion.tigris.org/servlets/ProjectDocume

熊晓杰 -- (暴熊 || kongbu0621 || kongbu0622) 的专栏 1310

安装配置SubversionApache

1.准备  apache_2.2.14-win32-x86-no_ssl.msi  Setup-Subversion-1.6.6.msi  TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi  SVNService.zip2.安装apache  双击开始安装:  NetDomain,Server Name根据自己的条件选择  Administrator's Em...

weixin_34075551的博客 149
上一篇: 让你的游戏自适应屏幕吧
下一篇: Subversion快速入门教程
ictch
博客等级 码龄19年 48粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值