文档章节

svn服务器的搭建!!

求学ing
 求学ing
发布于 2012/11/14 15:02
字数 1931
阅读 816
收藏 2

工作前准备!

系统使用centos6.2最小安装的系统!

系统安装好以后配置 ip地址 和 dns地址! 能ping通百度/google  确保可以上网!


 一apache + subversion 环境的安装!(安装svn需要先安装apache,访问svn需要通过apache帐号)

1. 创建目录

 mkdir -p /web/root        #存放apache根目录也就是代替htdocs目录!

mkdir -p /web/log         #存放apache的错误日志

mkdir -p /web/src         #存放下载的安装文件

mkdir -p /web/svn        #


2. 安装编译工具和软件包

cd /web/src

yum -y install gcc gcc-c++ make glibc glibc-devel glib2 glib2-devel patch autoconf automake

yum -y install ntp wget vixie-cron


3.下载/安装关联文件

wget http://archive.apache.org/dist/apr/apr-1.4.6.tar.gz

wget http://archive.apache.org/dist/apr/apr-util-1.5.1.tar.gz

wget http://zlib.net/zlib-1.2.7.tar.gz

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.gz

wget http://www.sqlite.org/sqlite-autoconf-3071401.tar.gz


tar -zxvf apr-1.4.6.tar.gz

cd apr-1.4.6

./configure --prefix=/usr/local/apr

make

make install

cd ..


tar -zxvf apr-util-1.5.1.tar.gz

cd apr-util-1.5.1

./configure --with-apr=/usr/local/apr

make

make install

cd ..


tar -zxvf zlib-1.2.7.tar.gz

cd zlib-1.2.7

./configure --prefix=/usr/local/zlib

make

make install

cd ..


tar -zxvf pcre-8.31.tar.gz

cd pcre-8.31

./configure

make

make install

cd ..


tar -zxvf sqlite-autoconf-3071401.tar.gz

cd sqlite-autoconf-3071401

./configure --prefix=/usr/local/sqlite

make && make install

cd.


4. 下载安装apache2.2.9  ------- 因为subversion是1.6版本的 ,它和apache2.4版本兼容有问题!

wget http://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz

tar -zxvf httpd-2.4.3.tar.gz

cd httpd-2.4.3

./configure --prefix=/usr/local/apache2 --enable-so --enable-dav --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config               (  --with-mpm=worker 可以添加提高性能)

make

make install

cd ..

(自己检测apache是否安装成功~)


5.下载安装subversion1.6.19 

yum install  expat-devel

wget http://subversion.tigris.org/downloads/subversion-1.6.19.tar.gz

tar -zxvf subversion-1.6.19.tar.gz

cd subversion-1.6.19

./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl --with-zlib=/usr/local/zlib --enable-maintainer-mode --with-sqlite=/usr/local/sqlite

make

make install

cd..

到此svn安装完成


二:最主要的还是svn和apache的配置问题!!

---------------------这一步没有多大的用处----------------

为了方便使用subversion的命令,将subversion安装目录下的bin目录加入到Path中

vi /etc/profile  最后加入

SVN_HOME=/usr/local/subversion

PATH=$PATH:$SVN_HOME/bin:

export SUSBVERSION PATH

-----------------------------------------------------------------


1.创建账号密码文件添加apache用户

cd /

mkdir data

cd data

mkdir svn

cd svn

vi passwd.conf

apache用户的额添加:(用户是通过apache来访问svn的 所以用的是apache的用户)

第一次添加用户:/usr/local/apache2/bin/htpasswd -cm /data/svn/passwd.conf  + aaa (用户名)    回车后输入两次密码!! 

第二次添加用户:/usr/local/apache2/bin/htpasswd -m /data/svn/passwd.conf  + bbb (用户名)    回车后输入两次密码!! 

(/data/svn/  passwd.conf 文件里面可以看到用户, -c 覆盖写入,-m :用md5加密)


2.创建版本库

cd /data

mkdir svn

cd svn

mkdir code  -----------------版本库code目录

mkdir test  ------------------版本库test目录

cd /usr/local/subversion/bin 

./svnadmin create /data/svn/code  (到code下看是不是多了文件,多了就是说明版本库创建成功)

./svnadmin create /data/svn/test    (到test下看是不是多了文件,多了就是说明版本库创建成功)



3.创建权限控制文件

cd /data/svn/

touch authz.conf 

vi authz.conf


vi authz.conf

---------------

 [/]      #对于 /(根)目录(/date/svn) 设置权限如下

 * = r    #所有人对svn根目录都有读的权限 ()

[groups]     #添加 "组"

Admin = aaa    #添加apache(用户)为admin组的成员

system = bbb  # 添加test(用户)为system组的成员

[test:/]    #定义 用户/组 对test版本库的权限 

@Admin = rw    #admin组有读写的权限  (前面有@的是组没有@的是用户)

* =           #所有人都没有权限,没有这句话所有人都能检出test酷里面的内容,因为继承了[/]的权限!!!     

bbb = rw #apache对test版本库有rw权限

[code:/]                      # 定义 用户/组 对code版本库的权限

@Admin = rw # admin组对code版本库有rw权限!

--------------------



4.修改apache的配置文件

------------------------------------------------------------------------------------------------------------------------------------

打开apache的conf/httpd.conf,安装subversion后,apache的conf/httpd.conf文件会自动增加了模块
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

相应的so文件也自动copy到了apache/modules。这些工作就不用自己动手了。

---------------------------------------------------------------------------------------------------------------------------------------    

首先我们需要在http.conf文件里的最后面添加版本库的模块!         (我用的多模块方式!!)      

 

<Location /svn>

DAV svn

SVNListParentPath on                       ---------------->   #允许访问/svn目录    (多模块比单模块多了这条语句!!)  

 

SVNParentPath /data/svn    ----------------->定义版本库的目录(但模块需要写出具体的库如:   /data/svn/test)

AuthType Basic    ------------------>   启用基本的验证,用户名/密码验证      

 

AuthName "Subversion repository"    ------------------>

AuthUserFile /data/svn/passwd.conf    ------------------>   身份验证文件的路径  

 

AuthzSVNAccessFile /data/svn/authz.conf    --->   指定authz.conf文件的路径来限定各个用户或组在版本库中目录的访问权限      

 

Require valid-user    ------------------->   #禁止匿名访问      

#除了以上的语句以外还有其它的配置语句....以下的我没有用到..  

#Satisfy Any            准许匿名访问!  
 

#SVNIndexXSLT "/svnindex.xsl"        #Subersion自带的XSLT样式表  

#SSLRequireSSL   #只允许https方式访问      

 

</Location>

                   

然后然后为了我们使用方便修要修改以下地方

DocumentRoot "/web/root"                   #把apache的网站根目录修改到/web/root目录


<Directory "/web/root"> #对/web/root目录进行权限的控制!

 

    Options FollowSymLinks

   AllowOverride None

    Order allow,deny

    Allow from all

</Directory>


ErrorLog "/web/log//error_log"  #把错误日志文件放到/web/log/error_log文件里!(linux区分大小写!!)


修改apache配置文件以后重启apache后才能生效!

到此apache+svn配置成功!


检测方法

1.检查apache是否开启,没有开启的话先开启apache!!

/usr/local/apache2/bin/apachectl start

2.关闭linux的防火墙

service iptables stop

3.打开网页访问apache+svn 服务器的地址 出现一下"It works"字样,apache没问题

4.访问http://apache+svn服务器ip/svn/test  出现 登录 对话框 (用开设的apache帐号登陆) 

登录后提示 : " test - Revision 0: /"  svn安装成功!!  



 ----重要提示!----  注意:开设的apache帐号 (aaa/bbb) 他们的登录地址是  http://apache+svn服务器ip/svn/test 还是 http://apache+svn服务器ip/svn/code  是根据/data/svn/authz.conf 文件的配置决定的!  


常用命令:

1.添加用户

/usr/local/apache2/bin/htpasswd -m /data/svn/passwd.conf  bbb (用户名)    回车后输入两次密码!!

2.创建版本库

cd /usr/local/subversion/bin 

svnadmin create /data/svn/code  (到code下看是不是多了文件,多了就是说明版本库创建成功)

3.svn 检出命令

svn co /data/svn/test /web/root/    

 (只有第一次需要检出,以后用 svn update 就可以把上传的内容检出到/web/root里)

4.查看日志

svn  log  /data/svn/test 

5.查看svn文件或目录状态

svn status  

/data/svn/test 

更多信息去这里  http://www.jb51.net/os/RedHat/2461.html

工作中遇到的问题:

1.目标: 在装有 svn、nginx 服务的上,实现用http协议访问传到svn上面的html文件!

        步骤:首先配置nginx的反向解析,指定web访问的目录! 然后用svn的检出命令把需要查看的html文件检出到指定好的目录。 然后就能通过http://来访问svn检出的html文件!

2.版本库中有多层目录的权限分配!!

[groups]
admin = sunwn,www,wangyue
product = wangyue,lanrx,liubo
design = wany,shaow,wumin
develop = jinhao,shengsd,tongjh,shixl
system = sunwn,denglz
test = denglz,chenghm,test
operate = wangsq,wangrh

[/]
* = r

[ankang:/]
@admin = rw
* = r

[ankang:/decision]
sunwn = rw
* =

[ankang:/code]
@admin = rw
@develop = rw
* =

[ankang:/document/架构设计]
@admin = rw
* =

[ankang:/document/需求文档]
@admin = rw
@product = rw
* =

[ankang:/document/产品文档]
@admin = rw
@product = rw
* =

[ankang:/document/设计文档]
@admin = rw
@product =rw
@design = rw
* =

[ankang:/document/开发文档]
@admin = rw
@develop = rw
* =


限制版本库里面目录的权限时,必须限制所用户的权(* =  ),如果有用户没有限制他将继承上一级目录的权限!

以[ankang:/document/开发文档]为例,如果没有"* =  " 除了admin 和 develop 组的用户都有读的权限,因为[ankang:/] 给所有人读的权限了.

© 著作权归作者所有

共有 人打赏支持
求学ing
粉丝 12
博文 174
码字总数 72348
作品 0
昌平
本地搭建Windows SVN服务器,管理自己的代码

做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效的管理。这里我就介绍一个在Windows环境下简单快速搭建SVN服务器的方法。   通常的SVN...

hchen1982
2012/08/31
0
2
如何在Mac环境下搭建svn服务器端环境

在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还需做一下简...

lwaif
2015/07/15
0
0
【SVN】SVN服务器搭建、使用和Eclipse Subclipse的安装使用

1、前言 时间就是这样,当你没遇见的时候你觉得一些东西是很神秘的。只有当你用了才知道原来这东西也就这样。这就是所谓的一步一个脚印吧,成长吧。开始团队开发了才知道SVN是个什么东西。刚...

666B
2014/07/04
0
0
使用subeclipse来管理分支/标记

先简单说些搭建SVN服务器的题外话 之前有搭建过svn服务器,不过是那种最原始的方法,安装的svn服务器只支持以svn://开头的,并不支持http://和https://开头的,如果需要支持的话要配合Apache 现在...

whaon
2014/12/06
0
0
实战:使用SVN+apache搭建一个版本控制服务器

SVN简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说...

寰宇01
06/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

05-《深度拆解Java虚拟机》之JVM是如何执行方法调用的?(下)

一、问题引入 我们知道,设计模式大量使用了虚方法来实现多态。但是虚方法的性能效率并不高,所以作者就想在此基础上写篇文章,评估每一种设计模式因为虚方法调用而造成的性能开销,并且在文...

飞鱼说编程
28分钟前
2
0
nginx统一入口 多服务出口

nginx配置多ip和端口统一调用入口log_format中$upstream_addr 标识打印转发的url地址配置upstream和locationhttp {include mime.types;default_type application/octet-stream...

GoldenVein
30分钟前
1
0
阿里P9架构师谈:高并发网站的监控系统选型、比较、核心监控指标

在高并发分布式环境下,对于访问量大的业务、接口等,需要及时的监控网站的健康程度,防止网站出现访问缓慢,甚至在特殊情况出现应用服务器雪崩等场景,在高并发场景下网站无法正常访问的情况...

我是你大哥
32分钟前
1
0
华为HiAI 助力苏宁易购,让你尽享完美视觉购物体验!

还在感慨商品照片与实物存在差距,又要退货? 还在抱怨被忽视的图片小细节,影响了生活品质? 想要“买买买”, 又担心海量的商品图片耗光你的流量? 就在近期 搭载HiAI能力的苏宁易购新版上线...

华为终端开放实验室
33分钟前
1
0
聊聊redisson的RMap的computeIfAbsent操作

序 本文主要研究一下redisson的RMap的computeIfAbsent操作 实例 @Test public void testRMapComputeIfAbsent(){ Config config = new Config(); config.useSingleS......

go4it
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部