Ubuntu下SVN+Apache版本管理服务器配置

subversion是新一代的版本控制系统,版本管理是一个软件开发团队必不可少的工具。本文主要从实践角度总结了Ubuntu上安装svn服务器的过程。由于作者水平有限,其中纰漏之处还望网友不吝赐教!

总体来说,架设一个版本服务器要做以下工作:

1. 安装Ubuntu系统

2. 安装apache

3. 安装subversion

4. 创建版本库

5. 添加用户并设置用户权限

至此,服务器方面的工作基本完成。当客户端是windows系统时,安装工作显得很简单,一般使用TortoiseSVN作为客户端,网上也可以找到相应的教程!

以下,分步骤介绍svn服务器的架设过程。

1,安装Ubuntu:去Ubuntu官方网站下载相应的版本,一般有desktop和server两种,同时Ubuntu又有几种不同的衍生版本,各有特色!推荐使用Ubuntu的desktop版本,图形化的界面,省去初学者的很多烦恼!安装方法和普通的安装windows的方式差不多!

在进行下面的操作之前,需要说明一下,Ubuntu的用户分为管理员(Root)和普通用户(一般是用户安装系统时创建的)。管理员(Root)的密码默认是随机数。普通用户对系统文件没有修改的权力,只能浏览,这是出于安全考虑的,但是我们下面的过程需要对其中一些文件进行修改,所有,需要切换到 root用户下来完成下面的工作。

打开application/Accessories/Terminal,进入终端界面,注意,如果你是root用户,那么终端里面你看到的提示符为#;如果是普通用户,则为$。

一般为bb@bb-desktop:$ (普通用户)

root@bb-desktop:#(管理员用户)

希望能够以管理员登陆,需要做以下工作:

(1)设置管理员密码,方法如下

$sudo passwd (回车)

passwd: (输入密码,放心只管输,你看不到的)

re-passwd: (再输一边,还是看不到,但是两遍输入相同则设置成功)

(2)允许以管理员身份登陆。Ubuntu默认是不允许以管理员身份登陆的,所以需要做以下设置

打开system/Administrator/login Window

在Security一栏里面,选择 Allow local system administrator login

然后关闭!

这样,我们就可以以root名称来登陆,执行只有管理员才可以执行的操作!

2,安装apache:

Ubuntu的新得立安装包内,随便点中一个,输入apache就可以定位apache2程序,标记为安装,同时选中这几个软件包apache2-common, apache2-utils, apache2-doc(apache文档,推荐安装)

安装完成后可以测试一下apache是否运行正常,记住这条命令,会经常用到:

sudo /etc/init.d/apache2 restart (重启apache服务器)

3. 安装subversion

同样在新得立安装管理工具里面选择subversion,libapache2-svn两个包。

4.创建版本库

版本库有两种数据存储格式:Berkeley DB和FSFS

推荐选用FSFS格式,具体可以查阅参考资料了解二者的区别。

创建版本库时,在终端运行如下命令:

4.1当你还没有一个目录时,可以用下面的方法先创建你需要的目录路径:

$ mkdir /etc/svn/ 创建目录,实际上就在相应位置生成了两个文件夹,可以到Filesystem里面查看

$ mkdir /etc/svn/repos 创建版本库的文件夹,到这里,它还只是个文件夹,但是它有版本库的名字

# 运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb

$ svnadmin create --fs-type fsfs /etc/svn/repos 创建版本库,运行这个命令后,我们就可以看到一个版本库应有的文件

4.2当你的目录已经存在时

cd /etc/svn/ 进入该目录

mkdir /repos 创建版本库文件夹

svnadmin create --fs-type fsfs /etc/svn/repos 创建版本库

至此,我们已经讲版本库创建完毕

更改版本库的访问权限(080110增加内容)

$ sudo mkdir /home/svn

$ cd /home/svn

$ sudo mkdir myproject

前面三条命令用于创建版本库目录,如果已经建立,就可以省略掉;后面三条用于修改权限

$ sudo chown -R www-data myproject      #将myproject 目录所属用户修改为www-data

$ sudo chgrp -R subversion myproject      #将myproject 目录所属用户组修改为subversion

$ sudo chmod -R g+rws myproject            #这条命令允许用户对版本库进行读写操作,即可以更新,可以提交

(这部分内容的详细讲解可以参考 https://help.ubuntu.com/community/Subversion )

Ubuntu下SVN+Apache版本管理服务器配置[图文]


5. 添加用户并设置权限

这里是架设服务器最复杂的地方,笔者试图把这里搞清楚,可惜,还是有些疑问!??好在服务器还能运转!

首先说,通过http协议传输数据时,用户是通过apache来操做svn版本库的,subversion是通过一些模块和apache进行通讯的。具体原理,有兴趣的朋友可以google相关资料。设置用户访问权限,有这么几个工作要做:

(1)版本库的密码文件,一般命名为PasswdFile,由用户通过命令创建,里面保存授权用户的用户名和MD5加密后的密码

(2)apache的httpd.conf文件,我理解这个文件是连接用户、apache、subversion的桥梁

这里只总结一下具体操作方法:

5.1 创建密码文件,密码文件保存在你的版本库文件目录下,在终端通过下面的命令创建密码文件

htpasswd -c /etc/subversion/passwordfile username

解释:/etc/subversion 版本库的目录配置

passwordfile 密码文件名称,可以由用户自行命名

username 你希望添加的用户名,比如zhangsan,lisi,wangwu

-c 用来创建密码文件,这个命令在密码文件不存在的情况下可以创建一个文件,可以看到的哦!然后再添加其他

用户时可以去掉这个命令字。

回车执行本命令,会要求你输入密码,一共需要输入两便,添加成功后会提示add user username,然后可以再继续添加

第二个用户。

htpasswd /etc/subversion/passwordfile seconduser

反复执行此程序,将自己需要添加的用户添加进去!如果以后有需要还要添加别的用户,也可以单独执行上边的这条命令来

添加。

文件创建完成后,你可以去目录下看一看是否有这么一个文件存在!实际上,应该是存在的,不存在的话就是操作没有成功啊!

5.2 配置httpd.conf文件

文件位置,正常安装的话在etc/apache2/ 目录下,双击打开进行编辑,添加如下内容

#LoadModule dav_module modules/mod_dav.so 加载mod_dav模块 
#LoadModule dav_svn_module modules/mod_dav_svn.so 加载mod_dav_svn模块 
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so 加载mod_anthz.svn模块 
<Location /vcard> location标签头 
DAV svn 
SVNPath /home/bb/svn/vcard/ 指明版本库的路径 
AuthType Basic 认证类型为基本认证 
AuthName "SVN repos" 认证名称,将在IE界面弹出一个对话框,其标题就是SVN repos 
AuthUserFile /home/bb/svn/vcard/VcardPasswdFile 加载密码文件 
# AuthzSVNAcessFile //home/bb/svn//vcard/accesspolicy 
# satisfy Any 
Require valid-user 要求验证用户,即不能匿名访问 
</Location> location标签尾

加#号的语句被注释掉了!如果有两个以上的版本库,可以针对每个版本库添加不同的location标签,两个互不影响。

配置完成后,重启apache,在IE里输入:http://localhost/vcard(即版本库名称),可以看到如下对话框

Ubuntu下SVN+Apache版本管理服务器配置[图文]

目前为止,我仅仅配置了几个最基本的apache+svn服务器!
以下内容需要进一步熟悉:
(1) SSL加密方式:提高数据传输的安全性
(2)同一个父目录下多个版本库的配置方式,如下:
/svnrepos/
/Project1/
/trunks
/branches
/tags
/Project2/
/trunks
/branches

/tags
(3)对用户权限进行细致管理的配置方式
(4)用户可以自行通过客户端建立版本库,进行全权管理

转自:http://www.linuxidc.com/Linux/2009-05/20246.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值