本文讲述如何利用Apache配置实现http的方式访问Subversion,本文的目录如下:

配置http匿名访问

增加用户名和密码控制

增加文件目录控制

【前提要求】

安装apache httpd,可参考:图文介绍apache2.2.x安装配置(http://www.micmiu.com/enterprise-app/cluster/apache-httpd-install/)

安装SVN服务Subversion,可参考:图文介绍windows搭建SVN服务端的基本步骤(http://www.micmiu.com/techother/software/subversion-windows-guide/)

启动Subversion服务(命令:svnserve -d -r d:\svnroot),创建好repository,并导入一个项目,比如:micmiu-app:

subversion 跟目录结构如下:

D:\>tree svnroot

卷 work 的文件夹 PATH 列表

卷序列号为 2AF7-9BD9

D:\SVNROOT

└─repo

├─conf

├─db

│ ├─revprops

│ │ └─0

│ ├─revs

│ │ └─0

│ ├─transactions

│ └─txn-protorevs

├─hooks

└─locks

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

D:\>treesvnroot

卷work的文件夹PATH列表

卷序列号为2AF7-9BD9

D:\SVNROOT

└─repo

├─conf

├─db

│├─revprops

││└─0

│├─revs

││└─0

│├─transactions

│└─txn-protorevs

├─hooks

└─locks

svn客户端连接截图如下:

【一】、配置http匿名访问

Apache httpd 安装路径:D:\Program Files (x86)\Apache2.2\

Subversion 安装路径:D:\Program Files (x86)\Subversion\

把%Subversion_home%\bin\mod_dav_svn.so文件复制到%apache_home%\moduals\

在%apache_home%\conf\httpd.conf 文件的末尾添加如下内容:

# load http svn conf

Include conf/extra/httpd-svn.conf

1

2

# load http svn conf

Includeconf/extra/httpd-svn.conf

创建%apache_home%\conf\extra\httpd-svn.conf文件,具体内容如下:

# load module for svn

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

DAV svn

SVNParentPath d:/svnroot

#SVNListParentPath on

1

2

3

4

5

6

7

8

9

# load module for svn

LoadModuledav_modulemodules/mod_dav.so

LoadModuledav_svn_modulemodules/mod_dav_svn.so

DAVsvn

SVNParentPathd:/svnroot

#SVNListParentPath on

配置好后需要重启Apahce服务,用svn客户端,打开:http://localhost/svn/repo/micmiu-app,如下图:

这时会发现已经实现了http访问SVN了,不过同时会发现之前在SVN服务端配置的用户名和密码控制无效了,如何控制请看下面接下来的内容。

【二】、增加用户名和密码控制

1.基本认证访问控制 htpasswd

创建密码文件,示例用于用户michael和micmiu 的访问控制:

D:\Program Files (x86)\Apache2.2\bin>htpasswd -c -m "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htpasswd" michael

New password: *******

Re-type new password: *******

Adding password for user michael

D:\Program Files (x86)\Apache2.2\bin>htpasswd -m "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htpasswd" micmiu

New password: ******

Re-type new password: ******

Adding password for user micmiu

1

2

3

4

5

6

7

8

9

D:\ProgramFiles(x86)\Apache2.2\bin>htpasswd-c-m"d:/Program Files (x86)/Apache2.2/conf/svn-auth.htpasswd"michael

Newpassword:*******

Re-typenewpassword:*******

Addingpasswordforusermichael

D:\ProgramFiles(x86)\Apache2.2\bin>htpasswd-m"d:/Program Files (x86)/Apache2.2/conf/svn-auth.htpasswd"micmiu

Newpassword:******

Re-typenewpassword:******

Addingpasswordforusermicmiu

ps:-c 表示创建密码文件;-m 表示用md5对密码加密

修改 conf\extra\httpd-svn.conf 文件,内容如下:

# load module for svn

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

DAV svn

SVNParentPath d:/svnroot

#SVNListParentPath on

# Authentication: Basic

AuthName "welcome to micmiu svn"

AuthType Basic

AuthUserFile "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htpasswd"

# Authorization: Authenticated users only

Require valid-user

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# load module for svn

LoadModuledav_modulemodules/mod_dav.so

LoadModuledav_svn_modulemodules/mod_dav_svn.so

DAVsvn

SVNParentPathd:/svnroot

#SVNListParentPath on

# Authentication: Basic

AuthName"welcome to micmiu svn"

AuthTypeBasic

AuthUserFile"d:/Program Files (x86)/Apache2.2/conf/svn-auth.htpasswd"

# Authorization: Authenticated users only

Requirevalid-user

配置好后需要重启Apahce服务,用svn客户端,打开:http://localhost/svn/repo/micmiu-app,如下图:

从上图可见提示你输入正确的用户名和密码才能访问。

2.Digest 方式认证控制 htdigest

创建密码文件,示例用于用户michael和micmiu 的访问控制:

D:\Program Files (x86)\Apache2.2\bin>htdigest -c "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htdigest" "my subversion repo" michael

Adding password for michael in realm my subversion repo.

New password: *******

Re-type new password: *******

D:\Program Files (x86)\Apache2.2\bin>htdigest "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htdigest" "my subversion rep" micmiu

Adding user micmiu in realm my subversion rep

New password: ******

Re-type new password: ******

1

2

3

4

5

6

7

8

9

D:\ProgramFiles(x86)\Apache2.2\bin>htdigest-c"d:/Program Files (x86)/Apache2.2/conf/svn-auth.htdigest""my subversion repo"michael

Addingpasswordformichaelinrealmmysubversionrepo.

Newpassword:*******

Re-typenewpassword:*******

D:\ProgramFiles(x86)\Apache2.2\bin>htdigest"d:/Program Files (x86)/Apache2.2/conf/svn-auth.htdigest""my subversion rep"micmiu

Addingusermicmiuinrealmmysubversionrep

Newpassword:******

Re-typenewpassword:******

修改conf\extra\httpd-svn.conf 文件,内容如下:

# load module for svn

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

DAV svn

SVNParentPath d:/svnroot

#SVNListParentPath on

# Authentication: Digest

#AuthName "welcome to micmiu svn"

#AuthType Digest

#AuthUserFile "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htdigest"

# Authorization: Authenticated users only

Require valid-user

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# load module for svn

LoadModuledav_modulemodules/mod_dav.so

LoadModuledav_svn_modulemodules/mod_dav_svn.so

DAVsvn

SVNParentPathd:/svnroot

#SVNListParentPath on

# Authentication: Digest

#AuthName "welcome to micmiu svn"

#AuthType Digest

#AuthUserFile "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htdigest"

# Authorization: Authenticated users only

Requirevalid-user

配置好后需要重启Apahce服务,用svn客户端,打开:http://localhost/svn/repo/micmiu-app,和上面一样会提示你输入用户名和密码。

【三】、增加文件目录控制

1.把%Subversion_home%\bin\mod_authz_svn.so文件复制到%apache_home%\moduals\

2.修改 conf\extra\httpd-svn.conf 文件,内容如下:

# load module for svn

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

DAV svn

SVNParentPath d:/svnroot

#SVNListParentPath on

# Authentication: Digest

#AuthName "welcome to micmiu svn"

#AuthType Digest

#AuthUserFile "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htdigest"

# Authentication: None

# Authorization: Path-based access control; authenticated users only

AuthzSVNAccessFile "d:/Program Files (x86)/Apache2.2/conf/svn-authz-file"

#Satisfy Any

# Authorization: Authenticated users only

Require valid-user

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# load module for svn

LoadModuledav_modulemodules/mod_dav.so

LoadModuledav_svn_modulemodules/mod_dav_svn.so

LoadModuleauthz_svn_modulemodules/mod_authz_svn.so

DAVsvn

SVNParentPathd:/svnroot

#SVNListParentPath on

# Authentication: Digest

#AuthName "welcome to micmiu svn"

#AuthType Digest

#AuthUserFile "d:/Program Files (x86)/Apache2.2/conf/svn-auth.htdigest"

# Authentication: None

# Authorization: Path-based access control; authenticated users only

AuthzSVNAccessFile"d:/Program Files (x86)/Apache2.2/conf/svn-authz-file"

#Satisfy Any

# Authorization: Authenticated users only

Requirevalid-user

3.创建%apache_home%\conf\svn-authz-file文件,具体内容如下:

[/]

* = rw

[repo:/micmiu-app/src]

* =

1

2

3

4

[/]

*=rw

[repo:/micmiu-app/src]

*=

该配置表示:可以访问对根目录读写,同时对micmiu-app/src目录没有任何权限

4.配置好后需要重启Apahce服务,用svn客户端,打开:http://localhost/svn/repo/micmiu-app,过程如下:

可见测试结果和我们预期设想的效果一致。

一些参考资料:

http://subversion.apache.org/faq.zh.html

http://svnbook.red-bean.com/nightly/en/svn.serverconfig.html

http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html

http://svnbook.red-bean.com/nightly/en/svn.serverconfig.pathbasedauthz.html

修改了svn服务器配置,配置http方式访问svn服务器相关推荐

  1. centos7搭建SVN并配置使用http方式访问SVN服务器

    一.检查SVN是否安装 centos7系统自带SVN # rpm -qa subversion [root@localhost ~]# rpm -qa subversion subversion-1. ...

  2. svn访问方式 linux,ssh+svn 方式访问svn

    一. 服务器安装和配置 1) 安装ssh server和subversion yum install -y openssh-server subversion 2) 建立svn用户,此用户为ssh登录 ...

  3. Tomcat配置https方式访问

    1.准备安全证书 获得安全证书有两种方式:一种方式是到权威机构申购CA证书,还有一种方式是创建自我签名的证书.本文以自签名证书为例,使用SUN公司提供的证书制作工具keytool制作自签证书,JDK版 ...

  4. Tomcat配置https方式访问__001

    1.准备安全证书 获得安全证书有两种方式:一种方式是到权威机构申购CA证书,还有一种方式是创建自我签名的证书.本文以自签名证书为例,使用SUN公司提供的证书制作工具keytool制作自签证书,JDK版 ...

  5. 阿里云SLB配置HTPPS方式访问

    1.http和htpps的区别 http: 默认端口:80 安全性: https: 默认端口:443 安全性:添加有加密证书,安全性相对较高 2.开始配置 1.slb负载均衡 在负载均衡实例列表中将服 ...

  6. powerdns与nginx结合实现以域名和IP方式访问web服务器80端口时分别跳转到不同页面...

    1.powerdns设置 2.内部网站介绍 web服务器采用nginx,内网dns采用powerdns. 想实现的功能如下 通过ip访问时跳转到A页面,通过域名访问时,让其跳转到B页面.两种方式的端口 ...

  7. Jpom 配置SSH 方式启动远程服务器jar包,远程执行启动脚本无效

    发布命令 source /etc/profile cd /home/rejoin/open-platform-service ./run.sh restart 命令解释: 1.加载环境变量 2.进入命 ...

  8. 《三、企业级SVN运维实战:SVN服务配置https访问》

    文章目录 一.svn服务部署 二.安装httpd及svn模块 三.svn http配置 四.创建svn http用户 五.修改svn仓库配置文件 六.配置https请求svn 七.svn测试 总结:整 ...

  9. SVN配置https访问 - linux服务器

    CentOS服务器部署svn+apache http + ssl https访问 一.配置https请求访问SVN 1.1 安装SSL模块 1.2 生成服务端数字证书 1.3 生成客户端数字证书 1. ...

最新文章

  1. 计算机专业可以用台式机吗,Win10X电脑操作系统可以装在台式机吗?
  2. 斐波那契数列的前n项值
  3. MongoDb连接表的查询
  4. Kafka 分布式环境搭建
  5. div中iframe高度自适应问题
  6. es6 类的私有属性_JavaScript ES6类中的私有属性
  7. spring官网下载
  8. qt tabwidget 设置tab 位置_qml创建TabWidget的案例
  9. Julia: Join与字符串Array
  10. python内置函数系列之str(一)(持续更新)
  11. Pentaho Report Designer
  12. 大话设计模式C++实现-第7章-代理模式
  13. 复制html代码怎么粘贴快捷键,电脑复制粘贴快捷键,教您电脑怎么用键盘复制粘贴...
  14. php企业后台管理系统模板,企业版PHP后台管理模板【清爽型】修改版~
  15. 云计算(Day 8)
  16. 【软件测试项目】三角形路径测试
  17. busybox tools
  18. Arcpy基础入门-6、arcpy要素属性操作
  19. android系统如何获得外置卡路径
  20. 一个例子手把手抬你入门Vue2

热门文章

  1. ssd的smt_联合评测 | Intel Optane SSD 有效加速 SmartX 超融合在 Oracle 等场景下的系统性能...
  2. dhcp服务器未能分发地址,H3C案例查看:ADCampus网络dhcp服务器未配置策略导致地址分配错误问题...
  3. 美团基于跨平台 Flutter 的动态化平台建设
  4. Barcode读取之barcode_para_contrast_min.hdev
  5. Python实现王者荣耀小助手(二)
  6. 【TSP问题】基于蜜蜂算法求解旅行商问题附matlab代码
  7. 瞬间“友尽”的五大整蛊代码,快去坑你的小伙伴吧!
  8. 沙箱环境--虚拟环境
  9. ONU、ONT、SFU、HGU……有什么区别
  10. Android 自定义View 绘制正N边形