文档章节

svn服务器的搭建!!

求学ing
 求学ing
发布于 2012/11/14 15:02
字数 1931
阅读 830
收藏 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
项目 | SVN 环境搭建与使用

最近有机会接触到公司的新项目,对于多人参与的项目,充分感受到 的重要性。为了深刻理解和复用起见,本文将从 、 和 多方面总结 SVN。 当然,版本控制的工具有很多,譬如 CVS、GIT、SVN,C...

Kofe_
08/27
0
0
如何在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
【SVN】Error running context: 由于目标计算机积极拒绝,无法连接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wxb141001yxx/article/details/82878503 小编今天要搭建一个SVN服务器(SVN服务搭建和使用)创建svn保存地址时...

13期王小波
09/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JSON数据从OSS迁移到MaxCompute最佳实践

摘要: 本文为您介绍如何利用DataWorks数据集成将JSON数据从OSS迁移到MaxCompute,并使用MaxCompute内置字符串函数GET_JSON_OBJECT提取JSON信息。 本文为您介绍如何利用DataWorks数据集成将J...

阿里云官方博客
17分钟前
2
0
LockSupport 源码

LockSupport 主要利用了Unsafe类中提供的part和unpart两个方法.而LockSupport类暴露出来的两个核心接口也是part和unpart两个. java.util.concurrent.locks.LockSupport源码: package java...

狼王黄师傅
17分钟前
2
0
《阿里巴巴 Java开发手册》读后感

前言 只有光头才能变强 前一阵子一直在学Redis,结果在黄金段位被虐了,暂时升不了段位了,每天都拿不到首胜(好烦)。 趁着学校校运会,合理地给自己放了一个小长假,然后就回家了。回到家才发...

Java3y
18分钟前
0
0
Mac sorceTree一直显示Passwprd Required

sourceTree 1.我是从码云上建了一个项目然后下载下来再推上去的是就报这个错 解决方法 打开sourceTree偏好设置===》打开网络===》修改url路径(这个就是你登录码云的用户名)...

潇潇程序缘
19分钟前
1
0
如何创建和部署一个属于自己的EOS代币

本文我们将弄清楚什么是EOS代币以及如何自己创建和部署EOS代币。 与以太坊相反,EOS带有即插即用的代币智能合约。以太坊拥有ERC20智能合约,EOS拥有eosio.token智能合约。Eosio.token智能合约...

笔阁
20分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部