apache + svn 版本控制服务器创建

来源:互联网 发布:天津数控编程招聘信息 编辑:程序博客网 时间:2024/05/17 08:20
 

Svn的安装

 

1.       下载svn的服务器Subversion

          到Subversion的官方网站上下载Subversion服务器的安装包, http://subversion.tigris.org/servlets/ProjectDocumentList?expandFolder=469&folderID=260

2.       安装Subversion服务器

           把下载下来的安装包 Setup-Subversion-1.6.0.msi  运行执行,按照提示完成安装,可以改变安装路径。此版本为目前最新版本

3.       下载客户端

到tortoisesvn的官方网站上下载客户端

http://tortoisesvn.net/downloads

4. 根据自己的机器标准来下载,下载成功以后,执行安装文件,按照其实完成.

 

配置Subversion

 

1.       新建一个目录,用着仓库d:\svnroot\to\repository

2.       告诉svn的仓库,执行命令svnadmin create d:\svnroot\to\repository –m “initial repository” 或者通过TortoiseSVN建立repo根目录,创建好后,就可以通过file:/// d/svnroot/to/resporsity或者file://localhost/ d/svnroot/to/repository在TortoiseSVN上的Repo-Browser就可以访问

3.       仓库的访问http://  https://   svn:// svn+ssh:// file:///   svn+XXX://上面这几种协议.现在主要介绍http://和svn://两种方式,file:///只能在本地使用的.也可以在局域网上使用, 例如file://server/d:/svnroot/to/repository。svn协议使用3690端口,如果防火墙无法打开端口,可与Apache整合使用http协议。

4.       采用svn协议的好处是安全性比较强,可任意更改服务监听端口。运行%SVN_HOME%\bin\svnserve –d –r d:\svnroot\to,也可以写成%SVN_HOME%\bin\svnserve –daemon –root d:\svnroot\to,即可按照daemon方式来运行一个后台进程,监听svn协议的请求。-r的作用是声明root目录。

5.       在linux下运行一个daemon进程非常简单,但是在windows中想让进程在后台运行就需要做成服务才行。下载并安装SVN Service Wrapper,将svnserve包装为服务。也就是把得到的SVNService.exe文件放到Subversion安装目录的bin目录下面就可以了.

6.       执行svnservice -install -d -r d:\svnroot\ to 安装svn仓库目录, 在控制面板->服务中手动开启。用TortoiseSVN浏览svn://localhost/,注意要带上最后的“/”指明root才能正确访问。使用权限控制. %REPO_HOME%/conf/ svnserve.conf,把下面几句代码前的#去掉: 

[general]

    # 指定匿名可读,授权后才可写入

    anon-access = read

    auth-access = write

    # 指定密码文件为当前目录下passwd

#password-db = passwd

# 指定授权文件

#authz-db = authz

注意: %REPO_HOME%指的是仓库的目录,就是通过TortoiseSVN或者指令svnadmin create “d:\svnroot\to\repository” –m “initial repository”的目录d:\svnroot\to\repository

7. Passwd文件内容如下,用户名 = 密码:此文件和svnserve.conf文件在同一个目录下面.  

[users]

lgh1117 = 123456

8. 修改授权文件authz,

[groups]

# 组名称 = 用户1,用户2 ……

dev = lgh1117

 

# [/]

# harry = rw

# * =

# 可访问的目录权限,[/]表示根目录,权限是读(r),写(w),*表示通配

[/]

lgh = rw

 

# [repository:/]

# @harry_and_sally = rw

# * = r

# 各用户组对仓库的访问权限

[repository:/]

@dev= rw

 

以上就是用svn://协议访问subversion的仓库模式.

使用svn与apache集成

 

1.     下载apache软件安装包,到网站 http://archive.apache.org/dist/httpd/ 可以下载到apache http server

2.     安装apache http server,运行安装程序就可以,会提示端口冲突问题,这个先不用管,直接安装就可以.

3.     启动的时候会不能启动,查看安装目录下面的logs下面的error.log文件,如果有端口冲突,那么,就到安装目录下的conf文件夹下面,找到httpd.conf问价,修改查找到   ” Listen”这个关键字,把后面的数字改成你想要的端口就可以,保存从新启动就没有什么问题了.

4.     配置svn和apache的集成,

1). 打开httpd.conf文件,查找文件里面是否有下面两项,并把前面的#去掉

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

增加下面两个模块

loadModule dav_svn_module "D:\Subversion\bin\mod_dav_svn.so"

loadModule authz_svn_module "D:\Subversion\bin\mod_authz_svn.so"

这两个模块的文件是在subversion安装目录bin下面存在的,这个就指向了这两个文件所在地址

   2). 在文件尾部添加下面的代码

       <Location /svn>

DAV svn

#SVNPath D:\ svnroot\to\repository

SVNListParentPath on

SVNParentPath D:\svnroot\to

AuthType Basic

AuthName "Subversion repositories"

AuthUserFile D:\svnroot\subversion\conf\passwd

AuthzSVNAccessFile D:\svnroot\subversion\conf\authz

Require valid-user

</Location>

说明:

DAV svn:告诉服务器,请求这个地址时,执行svn服务

SVNPath D:\ svnroot\to\repository:仓库路径

SVNListParentPath on:1.3版本以上的支持,查看所有的父类目录下的仓库.

SVNParentPath D:\svnroot\to:仓库的上一级目录,就是父类目录

AuthType Basic:访问的时候,是要通过授权的

AuthName "Subversion repositories":授权提示

AuthUserFile D:\svnroot\subversion\conf\passwd:授权认证文件,是通过apache目录bin下面的htpasswd.exe生成的,生成方式如步骤7

AuthzSVNAccessFile D:\svnroot\subversion\conf\authz:授权文件,是在仓库里面的授权文件,用apache生成的用户名和密码也在这里给指明授权.

Require valid-user:只有授权才能访问资源

如果文件路径中有空格的,一定要有“”括起来

 

说明:上面这样就算配好了apache与svn的集成

5.     访问资源,可以通过浏览器,也可以通过TortosieSVN来访问,访问地址是:

http://ip:port/svn/repository

repository指的是仓库目录.

6.     上传文件到svn服务器有种方法,命令方式格式:svn import 原文件目录 服务器url,这种方式的话,就得在源文件里建三个目录,trunk,tags,branches,再把要上传的内容放在branches里面.

也可以是用TortosieSVN客户端来上传,找到要上传的文件夹,点击鼠标右键,找到TortosieSVN,展开,找到Import..就可以了,如果你不想许多代码都混在一起,最好就用TortosieSVN客户端新建一个Subversion服务器的目录,在把代码传到里面.

7.      打开DOS窗口,进度到apache安装目录的bin目录下,本人的是在C盘,apache默认安装路径下,执行命令如下:

         #生成passwd加密文件,用户名lgh1117,密码123456

          htpasswd -cmb passwd lgh1117 123456

        #在原有的用户文件中增加一个新的用户

        htpasswd -mb passwd zhangsan 123456

 

    通过以上步骤,就完成了apache与svn的集成,并且实现了apache的认证方式就行登录访问限制

  

 

原创粉丝点击