码迷,mamicode.com
首页 > 其他好文 > 详细

SVN服务器的搭建,它不是最全面的却是最详细易懂的~

时间:2016-06-20 19:00:09      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:svn   管理软件   开源软件   源代码   

   刚接到这个任务的时候,我的脸上写着两个大大的懵逼俩字!可以说是零基础,那时候的我对于svn客户端的熟练程度也许还不如公司内的文职,更别说服务端了!技术分享

   任务到手,死扛到底,这才是我的性格~我的作战环境可以说是很艰苦,没有技术文档,而且就我一个运维!

   跟个无头苍蝇一样在网上乱转把资料翻个底朝天技术分享,才渐渐有了逻辑和思路。不过也废了好些周折才搞定!那几天每天在网上看资料下班之后眼都是红的!

   研究了好久,终于成功了,由于网上的资料参差不全,凌乱无章楼主饱受其苦,所以决定写下来与君共勉以免其苦。


 一、  首先了解下svn的简介和基本原理:

简介:   

    subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linuxwindows,但较多安装在linux下。

    svn服务器常用的有两种运行方式:独立服务器svn://ip地址, 和基于apache http:// ip地址(也可基于nginx等服务)
     svn客户端是tortoisesvn


原理:

    在一台服务器上建立一个源代码库,库里可以存放许多不同项目的源程序。由源代码库管理员统一管理这些源程序。每个用户在使用源代码库之前,首先要把源代码库里的项目文件下载到本地,然后开发人员可以在本地修改,然后用svn命令进行提交。而不同的部门也可以上传些资料提供本部门的人员上传下载,类似于ftp,网盘之类的功能。


二、安装svn的方式

首先介绍独立svn服务器的安装和配置,而apache方式访问的svn是基于独立服务器之上建立的。

安装svn常用的有两种方式:yum安装,源码安装。个人推荐想简单点的话使用yum安装,就不用在考虑各种依赖关系和变量了,而源码安装这里就不在赘述网上有很多教程!

yum安装:

1.yum install -y  subversion

2.安装完之后查看下:rpm -ql  subversion,之后拉到最上面如图所示,代表安装成功

技术分享

3.配置svn

首先创建版本库目录:mkdir  -p  /opt/svn/               "目录可以随意创建指定"。

创建你想要的版本库:svnadmin  create /opt/svn/zt,创建好之后会在zt版本库中生成如图所示的几个文件技术分享

进入到conf中会有三个配置文件分别添加如下文所示:

authz:权限配置文件  

技术分享

passwd:密码文件

技术分享


svnserve.conf:版本库配置文件

进入版本库配置文件,打开下面的几个注释,注意:得顶头写:

anon-access = read                #匿名用户可读

auth-access = write                #授权用户可写

password-db = passwd          #使用哪个文件作为账号文件

authz-db = authz                   #使用哪个文件作为权限文件

realm = /opt/svn/zt               # 认证空间名,版本库所在目录


4.上诉配置完成之后启动版本库:svnserve   -d   -r /opt/svn/zt

若是出现下图所报错误,请执行netstat -anpt |grep svn   ————> kill  pid号之后即可成功执行

技术分享

5.然后在客户端执行如下操作即可成功,前提是可以ping通

新建文件夹右击checkout,下图所示:

技术分享 

svn服务器ip/版本库

技术分享

passwd中指定的账号密码

技术分享



(2.)如果想在独立svn服务器上运行多个版本库需要为其指定端口。

 svnserve --listen-port 3691 -d -r  /opt/svn/zt/

 svnserve --listen-port 3692 -d -r  /opt/svn/repos/

 svnserve -d -r /opt/svn/

重启完各个版本库之后再把整个版本库目录启动


三、基于apache方式访问的svn安装与配置

这个是在独立svn服务器成功的基础上搭建的,首先ps -ef |grep httpd查询下httpd是否属于apache

反之需yum -y install mod_dav_svn httpd


  1. ls /etc/httpd/modules/ | grep svn  :svn验证模块

mod_authz_svn.so   mod_dav_svn.so


2.apache相关配置:vim /etc/httpd/conf.d/subversion.conf

技术分享

SVNPath 定义单个的库

SVNParentpath 定义多个库

注意:apache配置的地方实在版本库目录中建立 密码和权限 配置文件,而svn服务器是在版本库中创建,创建方法大同小异。


3.创建访问用户(第一创建需要加 -c,代表新建的第一个用户)

htpasswd -c /opt/svn/passwd abc

密码:

再次输入密码:

abc用户创建成功


删除用户:htpasswd -D passwd abc


4.赋予权限问题

chown -R apache.apache /opt/svn/版本库

chmod -R 777 /opt/svn/


5.authz的权限问题

[groups] #在这里设置组,= 后面跟的是用户以,分割

admin = admin,admin1,admin2 

users = user,user1,user2


[zt:/]

#这里是版本库zt,表示对此库有某种权限,@admin代表组,不加@代表单个用户

#注意更改的配置需要顶到头不可以有空格否则会报错

@admin = rw

user = r


[zt:/123]

#这里指的是对zt版本库下的123目录有什么权限

@users = rw

创建完成之后只需要重启httpd 就好了service httpd restart

然后照着第二步执行客户端的操作只需要把路径改一下就可以了:http://ip地址/svn/zt


#注意

原本正常运行的svn服务器突然崩掉了,很奇怪为什么会这样,检查了一整天,才发现权限文件冲突也会照成整个服务器崩掉,然后重新把权限调整了下才正常了。

而且版本库路径在authz中不可以有乱码否则也不行


  也许 照着此文完完整整的做下来也会报一些的错误,但是相信我,此文已经给了你完整的思路和配置步骤而你只需要再根据错误信息针对性的去网上找找答案,问题便可游刃而解,而你也可以借着这个机会更深一步的了解svn的层次架构。

  觉得有用就转发点赞,多多评论一起交流

本文出自 “11422312” 博客,请务必保留此出处http://11432312.blog.51cto.com/11422312/1791074

SVN服务器的搭建,它不是最全面的却是最详细易懂的~

标签:svn   管理软件   开源软件   源代码   

原文地址:http://11432312.blog.51cto.com/11422312/1791074

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!