svn是一个功能强大的代码版本管理系统,可以将服务端安装在linux、unix以及windows下。svn通常采用http方式进行代码提交与下载。由于密码采用明文传输,因此存在泄密的风险。若采用https协议加密,则可大大提高安全性能。

在windows下配置基于apache的svn,带openssl0.9.8。可通过http或者https访问,或者只能通过https访问。部分资料从网上摘录,经过本人测试后,对部分内容进行了补充。

一、下载和安装

 (一)下载

1、下载apache,在此我下载的是apache-2.2.11-win32-x86-openssl-0.9.8,该版本的apache自带了openssl。(2013年11月最新版已经更新到2.4.6)

2、下载subversion,在此配置文档里我用的是1.6.4。可在官网上下载。

(二)安装

安装apache和subversion;

注:如果安装完apache之后出了no services installed的情况,请在cmd里进入到apache的bin目录,然后运行httpd.exe -k install -n apache2  即可。apache2根据自己apache的版本改变。

二、建配置库及用户名。 

1、建配置库

在cmd命令里进入subversion的bin目录,然后输入

svnadmin create d:\svn\test

注:上层目录d:\svn\test必须存在。即在d盘下建svn\test文件夹。

运行此命令即建好一个库。打开之后可看到test空文件中多了下图所示的那些文件。

2、建用户名

将apache设为环境变量,然后在cmd命令里进入apache\bin目录,执行以下命令即可。

初次建用户名:htpasswd  -c  [验证文件名] username

username对应我们的用户名,然后输入密码即可。

增加用户名:htpasswd  -m  [验证文件名] username

删除用户:      htpasswd  -D  passwd  username       注:此处必须用大写的D。

三、配置过程

在此为止,我们已经将客户端及服务器端的软件都安装好了,接下来就是配置过程了。

(一)配置可以通过http访问

1、打开subversion的bin目录,将下图所示的三个文件复制到apache的modules目录下。(因为apache本身不包含dav_svn.so和authz_svn.so模块。

注:如果apache的版本不是2.2.11,libdb44.dll的名字可能就是libdb**.dll。

2、因为apache和subversion的版本不对应,所以应将subversion的bin目录中的所有的dll文件复制到apache的bin目录里,在复制的过程中,要让apache停止。

3、打开apache的conf目录里的httpd.conf文件进行修改。

(1)在LoadModule部分,首先将以下两行前面的#去掉。

#LoadModule dav_module modules/mod_dav.so

#LoadModule dav_fs_module modules/mod_dav_fs.so

(2) 在LoadModule部分添加以下两句,因为我们前面只是将subversion中的dav_svn.so和authz_svn.so模块复制到apache的modules目录下,但是apache启动后并不会加载它,所以我们添加以下两句,以便让apache会加载这两个模块。

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

(3)在httpd.conf文件的最后添加以下内容

<Location /repos>

DAV svn

SVNParentPath "d:\svn"           # 库的路径。

SVNListParentPath on              # 查看所有的库(即库列表)

AuthType Basic

#SSLRequireSSL     #限制项目仓库只能通过https的形式进行访问,若只采用https访问,则去掉#

AuthName "svn repos"

AuthUserFile "D:\svn\passwd"     #用户名及密码的存放路径,据自己的情况写。

AuthzSVNAccessFile "D:\svn\svnaccessfile"      #权限文件的存放路     径,据自己的情况写。

Require valid-user

</Location>

到此为止通过http访问的所有的配置都已经完成。给用户权限即可通过http://ip:port/repos/test进行访问。

注: (1)ip:服务器的IP。

port:安装apache时我们选择的端口。

repos:location后面的部分,根据自己的实际情况填写。

test:库的名称。

(2)在配置文件httpd.conf中添加内容时一定要注意在英文状态下输   入,否则会导致apache启动不了;另外上面#及#后内容一定要去掉。

(二)通过https访问或者只能通过https访问

打开apache的conf目录里的httpd.conf文件进行修改。

1、将以下三行的注释去掉,即去掉#。

#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

#LoadModule ldap_module modules/mod_ldap.so

#LoadModule ssl_module modules/mod_ssl.so

#注:系统缺少文件mod_ssl.so,需要从网上下载并复制到modules目录,否则无法启动apache服务 下载mod_ssl.so

2、将以下行前面的注释去掉

#Include conf/extra/httpd-ssl.conf

改为Include conf/extra/httpd-ssl.conf

3、如果希望只通过https访问,则应该前面Location部分的#SSLRequireSSL前面的#去掉。没有去掉的话是https和http形式都可以访问。

4、申请证书

在cmd命令进入到apache的conf目录,执行以下命令。

openssl genrsa -out server.key 1024                          #生成密钥

openssl req -new -key server.key -out server.csr -config .\openssl.cnf                 #生成server.csr,此处需要从互联网下载openssl.conf文件,改名为openssl.cnf

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt                  #生成证书

生成证书时365是证书的有效期,可根据自己的情况进行填写。以上命令执行完之后会生成server.key ,server.csr,server.crt三个文件。

四、分配权限

在此文档我将权限文件命名为svnaccessfile,在其中添加权限内容。

内容如下:

[groups]

admin = username

dev =

......                                               #对应我们所需要的组。

[/]                                               #设置哪些组或用户可以查看库目录(所有的库的一个列表)

@admin=r

[test:/]                                             #给库设置访问权限。

@admin =rw

@dev=r

[test:/xx/xx]                                        #继续细分库的权限。

@admin = rw

到此为止,所有的配置都已经完成,我们可以通过客户端进行日常工作了。

windows下配置svn的https访问的更多相关文章

  1. WINDOWS下配置SVN代码管理

    服务器端使用 visualsvn server,客户端使用tortoiseSvn. 一.服务器端 1.首先,下载visualsvn server,安装到服务器.下载地址: http://www.vis ...

  2. 在Windows下配置svn服务端钩子程序(部分)

    需求一,svn提交时必须填写log日志的需求,如何进行配置呢?请看下面. 需要在版本库目录下找到hooks文件夹,我的版本库是dxoffice,所以是这个目录,你要找自己的目录 然后进入,创建一个pr ...

  3. Windows下配置SVN服务器

    2013-09-03 21:40:34 1. 下载安装svn软件 1.1 服务端svn 下载地址:http://subversion.apache.org/packages.html 默认安装路径:D ...

  4. https----------如何在phpstudy环境下配置apache的https访问以及访问http自动跳转成https

    1.首先在 httpd.conf里面修改几个地方 找到 #LoadModule ssl_module modules/mod_ssl.so 去掉前面的# Include conf/vhosts.con ...

  5. Windows 下配置 Apache 支持 https

    1.打开cmd ,输入  F: // 切换到Apache安装路径,我的Apache安装目录在 F盘 2.cd F:\Apache\bin 3.set "openssl_conf = F:\A ...

  6. 在Windows下配置svn服务端钩子程序

    需求一,svn提交时必须填写log日志的需求 @echo off :: :: Stops commits that have empty log messages. :: @echo off set ...

  7. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  8. windows下配置ssh访问github

    一.说明 一直使用HTTPS的方式访问github的代码,用的时间长了,发现这是效率很低的一种开发行为,因为每次git push的时候都要输入username和password.今天就介绍如何在win ...

  9. [源码管理] Windows下搭建SVN服务器

    前文所述SVN客户端使用的时候,用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效 ...

随机推荐

  1. js判断是否微信浏览器打开

    function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)==&qu ...

  2. MYSQL常见出错mysql_errno()代码解析

    如题,今天遇到怎么一个问题, 在理论上代码是不会有问题的,但是还是报了如上的错误,把sql打印出來放到DB中却可以正常执行.真是郁闷,在百度里面 渡 了很久没有相关的解释,到时找到几个没有人回复的 & ...

  3. jquery1.9学习笔记 之层级选择器(三)

    下一个相邻选择器(“prev + next”) 描述:选择所有给出祖先选择器的子孙选择器. 例子: <!doctype html> <html lang='zh'> <h ...

  4. Unity GUI TextField不能输入文字

    最近在弄Unity的GUI. 也算是好久不用了,有点不熟悉了. 用TextField的时候发现GUI是出来了不过不能输入文字 到网上查了一下说要用一个public的string来接收 我看了我的代码 ...

  5. 在C语言控制台程序中播放MP3音乐

    游戏没有声音多单调. 这里做一个简单的范例,用 mciSendString 函数播放 MP3 格式的音乐,先看看代码吧: // 编译该范例前,请把 background.mp3 放在项目文件夹中 // ...

  6. Android 之 Window、WindowManager 与窗口管理

    其实在android中真正展示给用户的是window和view,activity在android中所其的作用主要是处理一些逻辑问题,比如生命周期的管理.建立窗口等.在android中,窗口的管理还是比 ...

  7. 拉电流(source current)与灌电流(sink current)

    对一个互补输出的驱动器而言,从输出端向外电路流出的负载电流称为拉电流(SOURCE CURRENT):从外电路流入输出端的负载电流称为灌电流(SINK CURRENT):在没有负载的情况下,驱动器本身 ...

  8. RFID电子标签加工的倒装工艺

    倒装对于半导体封装领域的人员而言,是再熟悉不过的了.一般我们看到的集成电路多数以塑封为主,半导体芯片和外界进行信息沟通的通道,靠的就是集成电路的管脚.如果把集成电路外面的封装去掉,会发现每个集成电路内 ...

  9. POJ3580---SuperMemo (Splay)

    各种操作,区间更新,求最值.翻转.插入.删除.当然是Splay这种神器了. 主要是 revolve这个操作,其实也就是3个区间翻转放到一块, 比如 REVOLVE x y T,T %= (y-x+1) ...

  10. git 查看文件修改记录

    今天追了个几年前留下来的坑, 在 git 里追溯修改过程坑死个爹, 具体方法估计没多久又会忘, 还是记下来以后有的参考 大部分教程都会告诉大家使用 git log 来查看对应文件的修改记录, 就像这样 ...