RHEL5.4安装配置SVN+HTTPD版本控制服务器(服务器篇)

背景:
今天,朋友的客户又出妖蛾子了,朋友这几天天天电话我讨论这个samba服务器的问题实在很纠结,他那个服务器上大部分都是文本文档的存储,那个物流公司的员工又很搞,天天让他跑来跑去解决问题,他们总是直接在服务器上打开原始文档,然后改动了有不知道注明,同时几个人一起改一个文件很容易出现问题,例如无法保存,如果保存有先后顺序,有可能第一个用户保存的数据在第二个用户保存后丢失等等…,实在无奈之下想出了一个替代的方法,就是利用开源的软件实现一个能够控制文档版本,又很好集中管理文件的服务,就是利用subversion来实现文件的管理,这个软件大多是一些软件开发人员喜欢用到的版本控制服务器. 下面就来讲讲如何去实现,此处感谢同事任峰的大力支持,部分文档内容来自他的实验手册.特此声明.

RHEL5.4安装配置SVN+HTTPD版本控制服务器
一、安装环境:
    OS:RHEL5.4定制化安装,只需加入开发库及开发工具包即可,其他都可以不装,用最基本安装.前期部署时,先关闭防护墙,避免由于防火墙未配置而导致实验失败,同时关闭及禁用SELINUX。
A:装系统时设置标准的主机名
rhel5.bizsmooth.org
 
B:关闭selinux
#vi /etc/selinux/config
SELINUX=disable
 
C:去除IPV6
# vi /etc/modprobe.conf
添加:
alias net-pf-10 off
alias ipv6 off
 
二、软件配置介绍:
1.SVN简介
Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。
源文档
由于前些年在版本的管理上采用的都是CVS系统,总体上而言还是很优秀的,经过了多年的项目开发管理经历,在使用CVS系统在管理中大型的软件项目时还是遇到了很多不可克服的缺陷和局限性,主要表现在如下的几个方向:
1) 无法进行文件名称的修改活动,这样一来就会导致必须先删除该文件再上传,丢失了历史信息,要不就必须到服务上将xxx,v文件进行改名(我采用这种方法,不过总是找管理员太不方便了);
2) 目录名称没有被管理,这样就不能进行改名等动作,其实项目的目录结构对于项目的成功起了非常重要的作用,每次也只能到服务器上进行修改;
3) 项目的分支代价太高,需要对每一个文件都进行标记,对于大的项目耗时太长,并且基本上不能删除废弃了的分支和标记,因为那样很容易导致项目仓库的损坏,我就遇到了好多次这种让人发狂的情况;
4) 对于文件二进制和文本的处理经常会出现混乱,结果就使将二进制文件当作文本上传后内容被扩展导致丢失,因为有些时候二进制文件的扩展名和某些文本文件的扩展名相同了,所以导致CVS识别就会出错。
可以安装并配置subversion(简称svn)系统,使用svn来替换CVS系统,以解决上述问题。
2. Subversion有两种运行方式
一种是基于Apache Http Server,另外一种是Subversion Standalone Server。下面我讲解的是基于Apache Http Server的Subversion,这样做几个好处
1) 能使用WebDAV协议
2) 能使用浏览器作为客户端工具浏览源码仓库
3) 可以很容易的支持到SSPI(Windows域认证)和LDAP(AD),这些都是Apache本身就支持的

能得到比较完善的Apache安全认证系统,比如SSL加密连接.
三、软件安装:
1. 网络拓扑

网络拓扑图

svn服务器网络拓扑图

其中,服务器IP地址改动一下:
WEB/SVN服务器地址: 192.168.10.2/24
DC服务器地址: 192.168.10.3/24
域名: www.bizsmooth.org
2. SVN安装
安装系统: RHEL5.4
安装方式: RPM
安装图示:
记得配置DNS服务器地址,就是修改/etc/resolv.conf

DNS选项信息

dns服务器地址

然后挂载光盘及安装相关软件:
[root@rhel5 ~]# mount /dev/cdrom /mnt/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@rhel5 ~]#
[root@rhel5 ~]# cd /mnt/Server/
[root@rhel5 Server]# rpm -vih httpd-2.2.3-31.el5.x86_64.rpm \
> httpd-manual-2.2.3-31.el5.x86_64.rpm \
> httpd-devel-2.2.3-31.el5.x86_64.rpm \
> mysql-5.0.77-3.el5.x86_64.rpm \
> mysql-server-5.0.77-3.el5.x86_64.rpm \
> perl-DBI-1.52-2.el5.x86_64.rpm \
> perl-DBD-MySQL-3.0007-2.el5.x86_64.rpm \
> apr-devel-1.2.7-11.el5_3.1.x86_64.rpm \
>mod_dav_svn-1.4.2-4.el5_3.1.x86_64.rpm \
> mod_auth_mysql-3.0.0-3.2.el5_3.x86_64.rpm
然后记得安装subversion的软件包,rhel5系列的产品中已经包含在了安装包里.
subversion-1.4.2-4.el5_3.1.x86_64.rpm
subversion-devel-1.4.2-4.el5_3.1.x86_64.rpm
安装主程序和开发包:
[root@rhel5 Server]# rpm -vih subversion-1.4.2-4.el5_3.1.x86_64.rpm subversion-devel-1.4.2-4.el5_3.1.x86_64.rpm –replacepkgs
warning: subversion-1.4.2-4.el5_3.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:subversion ########################################### [ 50%]
2:subversion-devel ########################################### [100%]
[root@rhel5 Server]#
四. 安装完成后进行验证
1.验证模块安装的情况及配置文件的状态.
[root@rhel5 /]# cd /etc/httpd/conf.d/
[root@rhel5 conf.d]# ls
auth_mysql.conf proxy_ajp.conf subversion.conf
manual.conf README welcome.conf
[root@rhel5 conf.d]#
[root@rhel5 conf.d]#
[root@rhel5 conf.d]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
[root@rhel5 conf.d]# ls /etc/httpd/modules/ |grep svn
mod_authz_svn.so
mod_dav_svn.so

检查SVN的版本信息,

svn版本信息

svn版本信息

编辑SVN的配置文件:

svn模块

svn模块

这两个模块非常重要, 第一个加载的模块是让apache支持WebDAV的功能.
第二个模块是进行SVN验证的模块,这样SVN就可以利用apache的模块来实现验证了.
编辑这个配置文件很重要的一点就是你可以创建一个存储的仓库,文档里面用repository来描述存储的库,
例如,如果想要创建一个新的仓库如:http://localhost/repos/stuff ,你就需要用root用户登录后,在apache网页发布目录下创建一个新的目录如svn:
#cd /var/www
#mkdir -pv /var/www/svn
#svnadmin create stuff
#chown -R apache.apache stuff

接着还需要配置对目录的一些信息,例如验证信息,限制访问方法等等…
如图:

/etc/httpd/conf.d/subversion.conf配置信息

/etc/httpd/conf.d/subversion.conf配置信息

接着需要配置/var/www/passfile这个验证文件,生成的方法如下:
htpasswd [选项] 欲生成文件的路径 用户名

#htpasswd -cm /var/www/passfile jacky

该验证文件中的帐户是虚拟用户,由apache管理.

#chown apache.apache passfile

启动apache服务器

#service httpd start
#chkconfig httpd on
接下来是在客户端进行测试. 我们重新开一个版专门写测试的种种方法.

下集预告: 客户端测试subversion 的两种方法

About 李 伟斌

Just K.I.S.S To Be Or Not To Be, It's Your Qustion. --Keep It Simple & Stupid.
This entry was posted in Linux and tagged , , , , , , , , . Bookmark the permalink.

发表评论