• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
百分百
http://www.qrw100.com
博客园    首页    新随笔    联系   管理    订阅  订阅

Centos 5.3 Nginx+php+mysql配置 独立的 Subversion (SVN)服务器

subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。 
svn服务器有2种运行方式: 
1. 独立服务器 
2. 借助apache。

二种方式各有利弊,可以根据自己的需要进行配置,我不需要Http进行访问,只需要客户端可以Commit & update 就可以,所以我选择了第一种方式-独立的SVN服务器。 
svn存储版本数据也有2种方式: 
1. BDB 
2. FSFS。

因为BDB方式在服务器中断时,有可能锁住数据(朋友在搞ldap时就深受其害,没法根治),所以还是FSFS方式更安全一点,我也选择这种方式。

我的环境: 
1. svn服务器安装操作系统: Centos 5.3,安装步骤: <script language="JavaScript" src="http://book.book560.com/ads/ads728x15.js" type="text/javascript"></script>
获取svn安装包: 
# wget "http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz"
# wget "http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz"
编译svn以root用户登录: 
# tar xfvz subversion-1.6.6.tar.gz 
# tar xfvz subversion-deps-1.6.6.tar.gz 
# cd subversion-1.6.6 
# ./configure -prefix=/opt/svn -without-berkeley-db 
(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db) 
# make && make install 
在/etc/profile最后加入 SVN Path 以方便操作: 
# vi /etc/profile 
PATH=$PATH:/opt/svn/bin 
export PATH
 
测试是否安装成功: 
# svnserve --version 
或 
# /opt/svn/bin/svnserve -version 
[root@hexu softs]# svnserve -version 
如果显示如下,svn安装成功: 
svnserve, version 1.6.6 (r40053) 
compiled Dec 2 2009, 22:37:15

Copyright (C) 2000-2009 CollabNet. 
Subversion is open source software, see http://subversion.tigris.org/ <script language="JavaScript" src="http://book.book560.com/ads/ads728x15.js" type="text/javascript"></script>
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available. 

2. svn配置建立svn版本库目录可建多个: 
新建文件夹: 
# mkdir -p /opt/svndata/repos 
建立svn版本库: 
# svnadmin create /opt/svndata/repos 
修改svn版本库配置文件版本库: 
# vi /opt/svndata/repos/conf/svnserve.conf 
内容修改为: 
[general] 

anon-access = read

auth-access = write

password-db = passwd

authz-db = authz

 

注意:对用户配置文件的修改立即生效,不必重启svn。 
passwk.conf [users]是必须的,文件格式如下: 
[users] 
= = 下面列出要访问svn的用户,每个用户一行,示例: 
[users] 
username = password 
配置svn用户访问权限: 
# vi /opt/svn/conf/authz.conf

注意: 
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。 
* 对权限配置文件的修改立即生效,不必重启svn。 
用户组格式: 
[groups] 
= , 
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。 
版本库目录格式: 
[<版本库>:/项目/目录] 
@<用户组名> = <权限> 
<用户名> = <权限> 
其中,方框号内部分可以有多种写法: 
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svndata,[/]就是表示对全部版本库设置权限。 
[repos:/] 表示对版本库repos设置权限 
[repos2:/abc] 表示对版本库repos2中的abc项目设置权限 
[repos2:/abc/aaa] 表示对版本库repos2中的abc项目的aaa目录设置权限

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。 
权限可以是w、r、wr和空,空表示没有任何权限。 
示例: 

[groups]

[/]

sjow = rw

svn配置完毕。

 

3. 启动svn建立启动svn的用户 
# useradd svn 
# passwd svn 
根据提示为用户svn设置密码 
允许用户svn访问版本库: 
# chown -R svn:svn /opt/svndata 

启动svn 

#su - svn -c "svnserve -d -r /usr/local/webserver/svn/svndata/" 可执行

# su - svn -c “svnserve -d –listen-port 9999 -r /opt/svndata” 不可执行
其中: 
su - svn表示以用户svn的身份启动svn 
-d表示以daemon方式(后台运行)运行 
–listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限 
-r /opt/svndata指定根目录是/opt/svndata 
检查: 
ps -ef|grep svnserve 
如果显示如下,即为启动成功: 
svn 6941 1 0 15:07 ? 00:00:00 svnserve -d –listen-port 9999 -r /opt/svndata 
通过web方式访问svn有很多方法,请参阅配置websvn或配置bsSvnBrowser的方法。

好了所有配置完成,可以使用客户端SVN进行操作了。 
服务器测试: 
# cd /tmp 
# mkdir test 
# touch test.txt 
# svn import /tmp/test/ file:///opt/svndata/repos -m “this is thie first import” 
# mkdir -p /tmp/test2 
# cd /tmp/test2 
# svn co file:///opt/svndata/repos /tmp/test2/ 
或者: 
# svn co svn://{your-server-ip}:9999/repos/

这时应该可以看到文件test.txt.

另外的测试方法: 
# telnet {your-server-ip} 9999 检查端口是不是通的 
如果 上面检查不通,有可能是iptables中没有打开,设置iptables就可以: 
# vi /etc/sysconfig/iptables 
添加: 
-A RH-Firewall-1-INPUT -p tcp –dport 9999 -j ACCEPT

posted @ 2011-12-14 18:03  爱尚美  阅读(161)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3