svn+apache集成环境配置

Subversion是一个自由,开源的版本控制系统。在Subversion的管理下,每一次文件的修改都会被记录在版本库中,可以方便的查看文件的修改历史,修改的一些信息,方便的恢复到修改前

 

的任意状态。

 

搭建环境:win XP SP3+ Apache2.2.2 + svn1.7.5

 

svn官网:http://subversion.apache.org/packages.html

http://subversion.apache.org/docs/ 下载说明文档

根据需要下载对应版本,以win32为例。

 

1. http://sourceforge.net/projects/win32svn/files/1.7.5/

 

  下载 Setup-Subversion-1.7.5.msi 安装svn服务器,svn可以单独运行,也可以集成Apache服务器。

 

  下载TortoiseSVN 客户端,在win系统上,可以方便的与svn配合使用。

  TortoiseSVN下载: http://tortoisesvn.net/downloads.html

 

客户端安装完成后,右键菜单:

svn+apache集成环境配置


首先创建版本库:

svn Subversion\bin所在目录添加到 Path环境变量里面

svnadmin create F:\test

可以直接建立空文件夹,然后右键创建版本库

 svn+apache集成环境配置


默认生成的目录结构

conf更改默认配置

svnserve.conf

 

anon-access 匿名用户的访问权限

auth-access 认证用户的访问权限

 

值可以为

write 可读写

read  只读

none 拒绝访问

 

password-db = passwd 配置用户信息

默认使用当前目录下的passwd文件保存,可以更改为其它路径

authz-db = authz 配置用户权限

默认使用当前目录下的authz文件保存,可以更改为其它路径

realm = My First Repository 版本库标示,默认为UUID

force-username-case = none 是否忽略用户名的大小写 默认为none

use-sasl = true 是否启用Cyrus SASL验证库,默认值是false

 

min-encryption = 0

# max-encryption = 256

这些选项指定安全层SASL所需的强度

0表示不加密,1表示只检查完整性

值大于1。(例如:128表示128位有效密钥长度

###加密)。

passwd 保存用户信息

admin = admin 账号和密码为admin

开启svn服务,启动后dos框如果关闭,服务就停止。可以写入win 服务

 

svnserve -d -r F:\test1

svn+apache集成环境配置

浏览版本库,会出现上面认证框。输入配置好的用户如admin,会提示认证失败。

还需要配置authz,添加对应的权限

默认的目录结构

[aliases]

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

 

# [/foo/bar]

# harry = rw

# &joe = r

# * =

 

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

 

[groups] 用户组

manager = admin,test

user = user

[/] 

@manager = rw

user = r

*=

@manager表示 manager 用户组下面的所有用户都有读写根目录下文件的权限

user = r 表示 user 用户有只读权限

*= 表示除了上述用户和拥护者外,其它人无任何权限

 

 

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

同上,配置目录下面文件的详细权限

 

svn + Apache 集成

 

1.       Apache下载 http://httpd.apache.org/download.cgi  

httpd-2.2.22-win32-x86-openssl-0.9.8t.msi 本文下载版本

具体安装请度娘和谷哥

 

2.       配置httpd.conf

打开Apache的安装目录 Apache2.2\conf\httpd.conf 文件

去掉

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

这个两个的#注释

添加下面两个

LoadModule dav_svn_module modules/mod_dav_svn.so 

LoadModule authz_svn_module modules/mod_authz_svn.so

3.       配置虚拟路径

#/cncit  访问svn虚拟库名称,可以随意配置

<Location /cncit> 

#引用远程访问模块

DAV svn 

# SVNPath项目版本库路径

SVNPath F:/cncit   

</Location>

4.       找到Subversion服务器安装目录

 \Subversion\bin目录下 mod_dav_svn.so  mod_authz_svn.so 复制到

Apache2.2\modules 目录下

然后重启Apache 服务器

 svn+apache集成环境配置


在浏览器输入对应地址,就可以访问了。

apache 默认监听端口为Listen 80,但端口可能被占用。修改为适合的端口)

 

以上配置所以匿名用户都可以访问并任意修改源代码

 

5.       添加http认证

基于http的认证,使用用户名和密码来验证一个用户。Apache提供了一个 htpasswd 工具来管理一个用户认证文件,这个文件包含用户名和加密后的密码,然后就可以控制用户的访问。htpasswd 可以在 Apache bin 安装目录下找到。

    Htpasswd 用法

D:\Apache2.2\bin>htpasswd

Usage:

        htpasswd [-cmdpsD] passwordfile username

        htpasswd -b[cmdpsD] passwordfile username password

 

        htpasswd -n[mdps] username

        htpasswd -nb[mdps] username password

 -c  Create a new file.

 -n  Don't update file; display results on stdout.

 -m  Force MD5 encryption of the password (default).

 -d  Force CRYPT encryption of the password.

 -p  Do not encrypt the password (plaintext).

 -s  Force SHA encryption of the password.

 -b  Use the password from the command line rather than prompting for it.

 -D  Delete the specified user.

On other systems than Windows, NetWare and TPF the '-p' flag will probably not work.

The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.

 

 svn+apache集成环境配置


 

创建用户文件:

 D:\Apache2.2\bin>htpasswd -cb pswd zyq zyq

Adding password for user zyq

D:\Apache2.2\bin>

 

创建一个pswd的验证文件,并添加一个zyq用户

 

D:\Apache2.2\bin>htpasswd -b pswd test test

Adding password for user test

D:\Apache2.2\bin>

添加用户一个新的用户

 

修改 httpd.conf,在 Location 标签中加入如下内容:

AuthType Basic

AuthName "cncit"

AuthUserFile D:/Apache2.2/bin/pswd

Require valid-user

 

说明:

AuthType Basic:启用基本的验证,比如用户名/密码对。

AuthName "cncit":当一个认证对话框弹出时,出现在认证对话框中的信息。(最好用英文,TortoiseSVN 不支持中文,安装语言包除外。)

AuthUserFile D:/Apache2.2/bin/pswd指定D:/Apache2.2/bin/pswd为用户文件,用来验证用户的用户名及密码。

Require valid-user:限定用户只有输入正确的用户名及密码后才能访问这个路径

配置完成的 Location标签

<Location /cncit> 

 

DAV svn 

 

SVNPath F:/cncit 

 

AuthType Basic

 

AuthName "cncit"

 

AuthUserFile D:/Apache2.2/bin/pswd

 

Require valid-user

 

</Location>

 

重启Apache服务,然后访问版本库,

 svn+apache集成环境配置


输入配置的用户信息,就可以访问了.

 

6.       单个版本库和多个版本库的配置

a.单库配置

 svn+apache集成环境配置


<Location /test>

DAV svn

SVNPath F:\test

</Location>

版本库对外的URL是:http://服务器IP/test/ ,所有的Subversion版本库在物理上位于F:\test目录。

 

b.多库配置

 

 svn+apache集成环境配置


<Location /svn/>

 DAV svn

 SVNParentPath F:\svn

</Location>

 

SVNParentPath F:\svn 表示 F:\svn 下的每个子目录都是一个版本库。可以通过 http://服务器IP/svn/pro1/http://服务器IP/svn/pro2/ 来访问不同的版本库

 

多个版本库使用统一的认证,禁止匿名用户访问

<Location /cncit>   

DAV svn  

SVNParentPath F:\svn

AuthType Basic

AuthName "cncit"

AuthUserFile D:/Apache2.2/bin/pswd

Require valid-user  

</Location>

使用LimitExcept标签,标示匿名用户可以访问,只有认证用户有修改的权限

<Location /cncit>   

DAV svn  

SVNParentPath F:\svn

AuthType Basic

AuthName "cncit"

 

AuthUserFile D:/Apache2.2/bin/pswd  

<LimitExcept GET PROPFIND OPTIONS REPORT>

require valid-user

</LimitExcept>

</Location> 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章