Apache+SVN+花生壳

一、软件准备

1.APACHE(apache_2.2.14-win32-x86-no_ssl.rar)*附件里有

2.Subversion SVN服务端(Setup-Subversion-1.6.6.msi)*附件里有

3.TortoiseSVN SVN客户端(TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi)*太大个了,网上去下吧,传不上来

4.LanguagePack_1.6.6.17493-win32-zh_CN.msi 语言包*附件里有

5.SVNService.zip 用于建立windows服务(可选)*附件里有

二、安装
上面的 1 、 2 、 3 、 4 均为直接安装即可,注意在安装完 3 再安装四的时候要重启一下,然后将 5 解压到 2 中安装目录下的 bin 目录中。

我的安装目录是“D:\SVN\Subversion”,那么SVNService.exe就放到“D:\SVN\Subversion\bin”下面就是。 

找到 Subversion 安装目录下的以下文件:

bin/mod_authz_svn.so
bin/mod_dav_svn.so


复制到 Apache 安装目录下 modules 目录中

bin/intl3_svn.dll
bin/libdb*.dll


复制到 Apache 安装目录下 bin 目录中(这里似乎并不是必须的,我猜想这里或许是为了支持 Berkeley DB 而所作的操作,但我并不打算深入研究下去)

三、创建版本仓库

1.新建一文件夹作为总的“版本基地”如“D:\SVN\svnAllproject”。然后在下面建立一个版本仓库。如“D:\SVN\svnAllproject\enterprise”,然后右键“enterprise”文件夹,选择TortoiseSVN---》create repostory here。 然后一个版本仓库就建立好了。

2.进入“D:\SVN\svnAllproject\enterprise\conf”进行配置。具体配置见附件config.rar

四、创建SVN服务和启动服务 

1.创建服务

DOS窗口下

D:\SVN\Subversion\bin>SVNService -install -d -r D:\SVN\svnAllproject

或者D:\SVN\Subversion\bin>svnserve -d -r D:\SVN\svnAllproject(和上面差不多)

2.启动服务

直接进入服务“运行”----》services.msc

启动“SVNService”服务。

3.导入需要版本控制的项目,如“E:\workspace\enterprisesys”这个项目需要版本控制了。 右键“enterprisesys”文件夹然后TortoiseSVN---》import..---》url中"http://localhost/repository/enterprise/"这样就可以了。

五、ApacheSVN 服务器教程(转载)


Subversion的设计包括一个抽象的网络层,这意味着版本库可以通过各种服务器进程访问。理论上讲,Subversion可以使用无限数量的网络协议实现,目前实践中存在着两种服务器。
?        SVNServer:svnserve是一个小的(也叫轻型的)、独立服务器,使用自己定义的协议和客户端。(作者注:以下称这种服务器为“svnserver服务器”,上面的安装配置就是安装svnserver服务器。)
?        ApacheSVN:Apache是最流行的web服务器,通过使用mod_dav_svn模块,Apache可以访问版本库,并且可以使客户端使用HTTP的扩展协议WebDAV/DeltaV进行访问。(作者注:以下称这种服务器为“ApacheSVN服务器”)

通过 Http 协议访问版本库是 Subversion 的亮点之一。ApacheSVN服务器具备了许多svnserve服务器没有的特性,使用上更加灵活,但是有一点难于配置,灵活通常会带来复杂性。

由于 Subversion 需要版本化的控制,因此标准的 Http 协议不能满足需求。要让 Apache 与 Subversion 协同工作,需要使用 WebDAV(Web-based Distributed Authoring and Versioning:)Web 分布式创作和版本控制)。WebDAV 是 HTTP 1.1 的扩展,关于 WebDAV 的规范和工作原理,可以参考 IETF RFC 2518 (http://www.ietf.org/rfc/rfc2518.txt)。

 六、Apache配置
修改Apache的配置文件 httpd.conf ,使用LoadModule来加载mod_dav_svn模块。

去掉#LoadModule dav_module modules/mod_dav.so前面的“#”号。

添加:
LoadModule dav_svn_module modules/mod_dav_svn.so

一定确定它在 mod_dav 之后。

现在你已经设置了Apache和Subversion,但是Apache不知道如何处理Subversion客户端,例如TortoiseSVN。为了让Apache知道哪个目录是用来作为Subversion版本库,在httpd.conf 配置文件最后添加如下几行:

<Location /repository>
  DAV svn
  SVNParentPath D:/SVN/svnAllproject
</Location>

这个配置告诉Apache首先需要启用 dav_module,然后加载 dav_svn_module 。版本库对外的URL是:

http://服务器IP/repository ,所有的Subversion版本库在物理上位于D:/SVN/svnAllproject。
配置完毕后重新启动 Apache,打开浏览器,输入 http://服务器IP/ repository +"具体的版本仓库" 如

http://服务器IP/ repository/enterprise

*httpd.conf 具体配置见附件httpd.rar

现在你的版本库任何人都可以访问,并且有完全的写操作权限。也就是说任何人都可以匿名读取,修改,提交,以及删除
显然大部分场合这是不符合需求的。那么如何进行权限设置呢,Apache 提供了基本的权限设置:

*权限控制待续中加入,我自己还没弄权限的。现在通过局域网是能访问了,现在配置花生壳。

七、花生壳+路由器配置

我用的是D-Link 进入虚拟服务器配置

名称 svn服务器

个人 IP 地址 192.168.0.100

协议模式 TCP

私有服务端口 8080

公用服务端口 8080

这样路由器的配置搞定

花生壳申请完有个免费域名然后启动花生壳

现在可以通过外网进入SVN服务器了。http://“你花生壳的免费域名”:8080/repository/enterprise

八、权限(具体配置见httpd.conf)

使用 Apache 安装目录下的 bin/htpasswd.exe 可执行文件生成授权文件

第一次生成,使用 -cb 参数:

htpasswd -cb [filename] [username] [password]


例如:

htpasswd -cb passwd.apache islee 123


添加新用户,使用 -b 参数:

htpasswd -b passwd.apache another 456


将生成的 passwd.apache 文件移动到 D:\SVN\svnAllproject\enterprise\conf目录下

 如:

a) 配置单项目

在Apache的conf/httpd.conf文件,在末尾添加以下内容

#配置虚拟目录
<location /svn/enterprise>
#引用远程访问模块
DAV svn

#版本库路径
SVNPath D:\SVN\Repositories\iSLeeBlog

#授权文件
AuthzSVNAccessFile D:\SVN\svnAllproject\enterprise\conf\authz

#所有用户都需要身份验证
Satisfy Any
Require valid-user

#验证方式
AuthType Basic

#项目的名称
AuthName "enterprise"

#用户文件
AuthUserFile D:\SVN\svnAllproject\enterprise\conf\passwd.apache
</location>

八、插件myeclipse+SVN中集成

插件集成地址

http://subclipse.tigris.org/update_1.6.x

会出现unable to load default svn client 这种错误一般是由于没有JavaHL造成的。
解决方案:去http://www.collab.net/downloads/subversion/redhat.html下载
CollabNet Subversion Command-Line Client v1.6.11 (for WINDOWS的)

猜你喜欢

转载自lionsadness.iteye.com/blog/744412