服务器 频道

实战:建立RHEL 5.0下版本控制服务器

使用suvserver方式运行Subversion

    以svnserve这种方式的运行又可以分为两种(standalone和xinted)

    1. standalone方式运行Subversion

 stand-alone模式工作原理见图4。

图4 stand-alone模式工作原理

 首先打开防火墙的3690端口:
    iptables -A INPUT -p tcp -m tcp --sport 3690 -j ACCEPT
    iptables -A OUTPUT -p tcp -m tcp --dport 3690 -j ACCEPT
 直接运行 #svnserve –d即可启动服务器。
 检查服务器运行情况和端口使用情况:
    分别使用netstat和ps命令检查服务器运行情况和端口使用情况,图5是进程运行情况。图6是端口情况。
 
图5 查看端口运行情况

 
图6 3690端口运行的是SVN服务器


    2、  xinetd 方式运行Subversion

    从守护进程的概念可以看出,对于系统所要通过的每一种服务,都必须运行一个监听某个端口连接所发生的守护进程,这通常意味着资源浪费。为了解决这个问题,Linux引进了“网络守护进程服务程序”的概念。RHEL 5.0的网络守护进程是xinted(eXtended InterNET daemon)。和stand-alone模式相比xinted模式也称 Internet Super-Server(超级服务器)。xinetd能够同时监听多个指定的端口,在接受用户请求时,他能够根据用户请求的端口不同,启动不同的网络服务进程来处理这些用户请求。可以把xinetd看做一个管理启动服务的管理服务器,它决定把一个客户请求交给那个程序处理,然后启动相应的守护进程。xinetd模式工作原理见图6。
 
          

图7 xinetd工作模式

    在/etc/xinetd.d/下手工建立一个文件svnserve内容如下
    service svnserve
    {disable = no
    socket_type = stream
    protocol = tcp
    wait = no
    user = apache
    server = /usr/local/bin/svnserve
    server_args = -i}
    下面说明每一行选项的含义。
    disable = no:表示启用这个服务。
    socket_type = stream:表示服务的数据包类型为stream。
    wait = no:表示不需等待,即服务将以多线程的方式运行。
    user = apache:表示执行此服务进程的用户是apache。
    server =/usr/local/bin/svnserve:启动脚本的位置。
    protocol = tcp  :服务类型是tcp

    编辑 /etc/services 文件加入底下两行:
    svnserve 3690/tcp # Subversion svnserve
    svnserve 3690/udp # Subversion svnserve
    重启xinetd服务即可。

总结:

   
到此为止RHEL 5.0  下的版本控制服务器Subversion以及设置完成。下篇文章笔者会介绍客户端连接Subversion服务器的方法,敬请关注。

0
相关文章