当前位置:文档之家› SVN服务器搭建_切身心得

SVN服务器搭建_切身心得

SVN服务器搭建_切身心得
SVN服务器搭建_切身心得

如何顺利的搭建SVN服务器?

网上教程很多,但是多半都是一些棒槌,要不就是看都不看就粘贴的,要不就是自己似是而非的写,所以现在整理一下,扫平初学者的障碍。

另外,这个教程是最简单的教程,只提供要搭建一个能用的SVN的流程,如果要稍微复杂一些的,请参考后面,如果要更高级一些,请直接google

最后补充:文档有错误,或者有什么想咨询我的地方,请给我发邮件,saharis1990@https://www.doczj.com/doc/8119113162.html,

准备条件:

OS:Windows 8 X64消费者预览版(这说明,xp/vista(32、64)/win7(32、64)/win8(64)都兼容)

注意下载exe版本,因为简单

SVN服务器(Subversion):https://www.doczj.com/doc/8119113162.html,/projects/win32svn/

SVN客户端(TortoiseSVN):https://www.doczj.com/doc/8119113162.html,/downloads.html

SVN 中文语言包:https://www.doczj.com/doc/8119113162.html,/downloads.html

花生壳(外网SVN使用):https://www.doczj.com/doc/8119113162.html,/peanuthull/download.php

补充:

1,64位的系统,32位和64位的SVN皆可使用,未发现兼容问题

2,32位的win8未经测试,不过应该不会有问题

整体步骤:

1,安装Apache服务器、SVN服务器和客户端

2,配置Apache服务器使其能够正常工作

3,配置SVN服务器并关联到Apache

4,设置权限

5,外网设置

其中需要注意的是3和4,3关联到Apache需要细心,4设置权限是SVN工作的根本

详细步骤:

重要前提:windows Visita之后,权限管理很严,但是我们又需要经常用到管理员权限,尤其是命令行,如果你的登陆用户名不是:Administrator,而是你自己设定的用户名。有一下两种操作供选择:

1,在控制面板关闭UAC

2,提升CMD的权限,方法为:在C:\windows\system32\cmd.exe,将cmd建立一个快捷方式,每次运行的时候,都要右键,以管理员身份运行。

这里我推荐操作2,UAC的存在对于系统来说大大提高了安全性,不建议关闭。

以下每次用到CMD,都是执行了操作2,请知晓

一,安装

1,下载Apache和SVN客户端、服务端、语言包后,一路安装即可

但是要注意,Apache的安装目录xampp要放在无特殊字符的目录下

基于这个原因,建议统一安装在C盘根目录,不要安装在ProgramFiles的目录里

一下所有目录以假设你安装在了C盘根目录

2,设置SVN语言为中文,方便操作

二,配置Apache

1,打开C:/xampp/apache/conf/httpd.conf,找到下面两个字段,并修改

#Listen 80

Listen 8080

#ServerName localhost:80

ServerName localhost:8080

这里改了监听端口,因为太多的软件会占用80端口,会导致apache服务无法启动。

ServerName暂时用localhost,以便测试

2,不要使用xampp这个来管理服务(没有特殊原因,个人推荐),用windows自带

的服务管理器来管理。

Win+R,输入services.msc,找到Apache,设置自动启动,并启动服务。

3,测试:打开浏览器,输入:localhost:8080,如果弹出来Xampp的界面,说明Apache配置成功

如果不成功,

1,请检查是否开启了杀毒软件或防火墙,全部关闭再次测试

2,请查看8080端口是否被占用,查看方法:cmd,输入:netstat –a –o 查看对应端口

三,配置SVN并关联Apache

1,建立仓库,找个地方,新建一个文件夹,进去,右键,建立版本仓库,假设你的目录是:E:\work

2,将SVN做成自动启动服务,管理员运行cmd,cd到Subversion的bin目录,执行如下命令:

sc create subversion_service binpath= "\"c:\subversion\bin\svnserve.exe\" --service -r E:\work " displayname= "Subversion Repository" depend= Tcpip

注意,等号后面都是有空格的

3,关联Apache:

在C:\Subversion\bin,复制如下四个文件:

mod_dav_svn.so

mod_authz_svn.so

intl3_svn.dll

libdb44.dll

到C:\xampp\apache\modules

其中,第四个文件的数字可能有不同,取决于版本号

4,修改配置文件:

记事本打开C:\xampp\apache\conf\httpd.conf,

找到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

这个是添加SVN的功能模组

5,添加SVN的访问目录:还是C:\xampp\apache\conf\httpd.conf这个配置文件,在文件最后面,添加上

DAV svn

SVNPath E:\work

AuthType Basic

AuthName "Subversion repositories"

AuthUserFile F:\svnroot\passwords.auth

AuthzSVNAccessFile F:\svnroot\access.auth

Require valid-user

注意严格按照这个格式来

下面介绍需要自行改为自己的地方:

SVNPath E:\work,这个是你的SVN版本库位置

AuthUserFile F:\svnroot\passwords.auth

AuthzSVNAccessFile F:\svnroot\access.auth

这两个是密码和权限获取的文件,请更改为你想存放的地方,并新建这两个文件6,测试:做了如上操作之后,打开浏览器,输入:localhost:8080/SVN

如果需要输入用户名密码,则说明成功了,下面进行权限的关键配置

四,设置权限

1,打开E:\work \conf\svnserve.conf,这个是你的SVN工程的权限说明文件,找到anon-access = read

auth-access = write

这两个行,去掉#,开启读和写的权限

2,打开你刚才新建的access.auth,写上:

[groups]

[/]

harry = rw

你只需要把harry更改为你的用户名即可,这里是将这个用户名更改为r读和w写的权限

[groups]下面为空的意思是,现在不分组(开发啊、测试啊等等)

[\]表示SVN所有的工程目录,这个用户都有这个权限

3,开始设置密码,密码设置分为两种,加密和不加密

A,不加密,最简单的,直接打开之前新建的passwords.auth,

输入:harry=123,这是将harry这个用户的密码设为123,

B,加密,推荐加密方法:cd到apache的bin目录,C:\xampp\apache\bin\

htpasswd -c F:\svnroot\passwords.auth harry,svnroot的这个目录是你之前的

设置的目录,harry是你要设的用户名

如果你要设置第二个及之后的用户的密码,在设置其它用户密码的时候,把-c

这个参数去掉,只在第一次设置密码的时候需要加上-c这个参数

之后,你会在passwords.auth这个目录看到你的用户名的密文密码

测试:任意地方右键,打开版本库浏览器,输入地址:http://localhost:8080/svn,输入你设置的用户名和密码,能够进入成功,看到文件,那么,恭喜你,成功了。

至此,局域网的服务器搭建成功了,其它用户访问的话,输入的把localhost替换成你的IP 即可。如果需要外网访问你的服务器,继续向下看。

五,外网设置

这里提供的方案是花生壳

1,Google搜索花生壳,下载安装,注册,登陆,好了,你可以看到自己的域名,把上述设置里,所有的localhost,替换成的你申请到的域名即可

2,配置路由器的映射,这个比较麻烦,有如下几种情况:

A,普通的modem,拨号上网,非路由器的,就不需要设置了

B,Modem加路由器,modem拨号,然后你连的是路由器,这个好办,在路由器里设置转发规则,也就是所谓的虚拟主机,设置端口8080,填上你自己的局域

网IP,好了,映射完成

C,电信光纤,这个麻烦很多,因为这个是modem和路由器一体的,我尝试用超级密码登陆,设置转发规则,但是失败了。一般的光线modem后面有的用户

名和密码权限很低,超级密码:用户名是admin,密码有的是gpon,有的是

epon,我在里面设置了转发规则之后,没有生效,就放弃了,接下来开始繁琐

的设置

1,找到设置PPOE上网的地方,删除这条

2,新建模式:桥接,名字就用默认就好了,选择端口,有四个,除了端口2,

其它都可以

3,路由器插上你刚才选的端口,登陆路由器,wan参数里填上上网账号和密

码,

4,路由器里设置转发规则,填上你此时的局域网IP。

设置完成,浏览器输入试一下。

六,权限的高级设置

在D:\svnroot目录下建立两个svn1和svn2

修改打开Apache安装目录下conf目录中的httpd.conf文件,将光标移到问文件的最末端

加入的代码修改如下:

DAV svn

#这里将SVNPath修改为SVNParentPath,当前目录为父目录

#仓库svn1和svn2在这个父目录下

SVNParentPath D:/svnroot

AuthType Basic

AuthName "Subversion Repository"

AuthUserFile "F:/svnroot/passwords.auth"

AuthzSVNAccessFile "F:/svnroot/access.auth"

Require valid-user

* 认证用户文件passwords.auth不需要做任何修改

* 认证权限文件access.auth修改如下:

[groups]

dev1 = tom,cat #开发用户组1

dev2 = hello #开发用户组2

[svn1:/]

* = r

[svn1:/aaa]

@dev1 = rw #设定dev1组成员对svn1仓库下的aaa目录有读和写权限

@dev2 = #设定dev2组成员对svn1仓库下的aaa目录没有任何权限

[svn1:/bbb]

@dev1 = #设定dev1组成员对svn1仓库下的bbb目录没有任何权限

@dev2 = rw #设定dev2组成员对svn1仓库下的bbb目录有读和写权限

[svn1:/ccc]

@dev1 = #设定dev1组成员对svn1仓库下的ccc目录没有任何权限

@dev2= #设定dev2组成员对svn1仓库下的ccc目录没有任何权限

[svn2:/]

@dev1 = #设定dev1组成员对svn2仓库没有任何权限

@dev2= #设定dev2组成员对svn2仓库没有任何权限

到此我们为不同用户分组对不同仓库定义了权限,大家可以使用不同的用户

进行browse/import/checkout试验

仓库1访问路径为http://localhost/svn/svn1

仓库2访问路径为http://localhost/svn/svn2

对父目录http://localhost/svn/,任何用户都没有任何访问权限

最后,如果需要更高级的管理方式,直接google

By Virgil 2012/3/11

相关主题
文本预览
相关文档 最新文档