使用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服务器的方法,敬请关注。