修改了svn服务器配置,配置http方式访问svn服务器

本文讲述如何利用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客户端连接截图如下:

af9acdc778e56adbe2fed554b6577a16.png

【一】、配置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,如下图:

372ce929f6801c108a18bfbdc3e32679.png

1c83405a7805af25344078328943c1f0.png

这时会发现已经实现了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

07574e6967021bb98f3025e809ebdc28.png

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,如下图:

26de37e635e257480ed616c718215f4f.png

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

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:******

d85d091f9ea0015e8497b1fae64410ad.png

修改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,过程如下:

9ef8724740b55fe6ccc6f09cb8c3c51d.png

3d26ee6ad967787e60f422f12e4168e7.png

1312b24cb8bece587c9f99e4668c93c1.png

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

一些参考资料:

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了配置一个 SVN 服务器在 Windows 上,您可以按照以下步骤进行操作: 1. 下载并安装 SVN 服务器软件:您可以从 Apache Subversion 的官方网站 (https://subversion.apache.org/) 下载最新的 Windows 版本。 2. 解压缩下载的软件包:将下载的软件包解压缩到您选择的目录。 3. 创建版本库:使用以下命令创建一个版本库(repository): ``` svnadmin create <repository_path> ``` 其中,`<repository_path>` 是你希望存储版本库的路径。 4. 配置访问权限:在版本库的根目录下,编辑 `conf/svnserve.conf` 文件,并确保以下配置被启用: ``` [general] anon-access = none auth-access = write password-db = passwd ``` 这将禁止匿名访问,允许认证用户进行写操作,并指定使用 `passwd` 文件作为密码数据库。 5. 配置用户和密码:在 `conf` 目录下,编辑 `passwd` 文件,添加用户和密码。例如: ``` [users] user1 = password1 user2 = password2 ``` 6. 启动 SVN 服务器:在 SVN 服务器软件目录下,执行以下命令来启动服务器: ``` svnserve -d -r <repository_path> ``` 其中,`<repository_path>` 是你之前创建的版本库路径。 7. 配置防火墙:如果您的服务器上启用了防火墙,请确保在防火墙中打开 TCP 端口 3690,以便客户端可以与 SVN 服务器进行通信。 完成以上步骤后,您的 SVN 服务器就可以在 Windows 上使用了。您可以使用 SVN 客户端工具(例如 TortoiseSVN,RapidSVN 等)来访问和管理版本库。记得在客户端连接时使用正确的服务器地址和认证信息。 希望这些信息对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值