CentOS用yum安装配置svn服务器步骤

在centos中利用yum安装svn server是非常方法的,我们只要简单的几条命令即可快速的完成svn服务器安装与配置。

简单的,用yum安装方式:

#yum install subversion

安装完成之后,采用以下查看是否安装完成

#svn --version

创建SVN的仓库,比如:

#mkdir -p /data/svn 

#svnadmin create opengeo

然后会发现自动生成conf、db、format、hooks、locks、README.txt等文件或目录。

修改conf目录下的配置文件

在svnserve.conf中,编辑配置为:

[general] 

anon-access = none 

auth-access = write 

password-db = passwd 

authz-db = authz

在auth中,配置组和权限为:

[groups] 

dev = user1,user2,user3 

[/] 

@dev = rw

在passwd中配置用户名和密码为:

[users] 

user1=pass1 

user2=pass2 

user3=pass3

经过以上几步,安装和配置完成,启动svn并指定相应的目录:

#svnserve -d -r /data/svn/

查看服务是否启动成功

#netstat -nlp | grep svn

关闭svn服务

#killall -9 svnserve

然后,便可以通过如下地址访问,{ip}替换为你的SVN服务器IP地址或域名:

svn://{ip}/opengeo

SVN Server详细配置手册

系统环境

CentOS 5.8 最小化安装(关闭iptables和selinux) + ssh + yum

一,安装必须的软件包.

yum install subversion mysql-server httpd mod_dav_svn mod_perl sendmail wget gcc-c++ make unzip perl* ntsysv vim-enhanced

说明:

subversion (SVN服务器)

mysql-server (用于codestriker)

httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)

sendmail (用于配置用户提交代码后发邮件提醒)

wget gcc-c++ make unzip perl* (必备软件包)

ntsysv vim-enhanced (可选)

二,基本的SVN服务器配置

1,新建一个目录用于存储SVN所有文件

# mkdir /home/svn

2,新建一个版本仓库

# svnadmin create /home/svn/project

3,初始化版本仓库中的目录

# mkdir project project/server project/client project/test (建立临时目录)

# svn import project/ file:///home/svn/project -m “初始化SVN目录”

# rm -rf project (删除临时建立的目录)

4,添加用户

要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:

[users]

# harry = harryssecret

# sally = sallyssecret

pm = pm_pw

server_group = server_pw

client_group = client_pw

test_group = test_pw

5,修改用户访问策略

/home/svn/project/conf/authz记录用户的访问策略,以下是参考:

[groups]

project_p = pm

project_s = server1,server2,server3

project_c = client1,client2,client3

project_t = test1,test1,test1

[project:/]

@project_p = rw

* =

[project:/server]

@project_p = rw

@project_s = rw

* =

[project:/client]

@project_p = rw

@project_c = rw

* =

[project:/doc]

@project_p = rw

@project_s = r

@project_c = r

@project_t = r

* =

说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!

6,修改svnserve.conf文件,让用户和策略配置升效.

svnserve.conf内容如下:

[general]

anon-access = none

auth-access = write

password-db = /home/svn/project/conf/passwd

authz-db = /home/svn/project/conf/authz

7,启动服务器

# svnserve -d -r /home/svn

注意:如果修改了svn配置,需要重启svn服务,步骤如下:

# ps -aux|grep svnserve

# kill -9 ID号

# svnserve -d -r /home/svn

8,测试服务器

# svn co svn://192.168.60.10/project

Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d

Password for 'root':

Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d

Username: server_group

Password for 'server_group':

svn: Authorization failed ( server_group没用根目录的访问权 )

# svn co svn://192.168.60.10/project

Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d

Password for ‘root’:

Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d

Username: pm

Password for ‘pm’:

A    project/test

A    project/server

A    project/client

Checked out revision 1.  ( 测试提取成功 )

# cd project/server

# vim main.c

# svn add main.c

# svn commit main.c -m “测试一下我的C程序,看什么看,不行啊??”

Adding         main.c

Transmitting file data .

Committed revision 2.  ( 测试提交成功 )

三,配置SVN服务器的HTTP支持

1,转换SVN服务器的密码

由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。我写了一个Perl脚本完成这个工作.

脚本内容如下:

# cd /home/svn/project/conf/

# vim PtoWP.pl

#!/usr/bin/perl # write by huabo, 2009-11-20  use warnings; use strict;  #open the svn passwd file open (FILE, "passwd") or die ("Cannot open the passwd file!!!n");  #clear the apache passwd file open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!n"); close (OUT_FILE);  #begin foreach (<FILE>) { if($_ =~ m/^[^#].*=/) { $_ =~ s/=//; `htpasswd -b webpasswd $_`; } }# chmod +x PtoWP.pl

# ./PtoWP.pl

Adding password for user pm

Adding password for user server_group

Adding password for user client_group

Adding password for user test_group

现在目录下会多一个webpasswd文件。

2,修改httpd.conf,添加关于SVN服务器的内容

编辑/etc/httpd/conf/httpd.conf,在最后添加如下信息:

<Location /project>

DAV svn

SVNPath /home/svn/project/

AuthType Basic

AuthName "svn for project"

AuthUserFile /home/svn/project/conf/webpasswd

AuthzSVNAccessFile /home/svn/project/conf/authz

Satisfy all

Require valid-user

</Location>

3,修改svn目录的属主为apache帐号:chown -R apache.apache /home/svn/project/

(注意:原文少了这一步,会出权限问题。)

4,重启Web服务器:

# /etc/init.d/httpd restart

Stopping httpd: [FAILED]

Starting httpd: [ OK ]

5,用浏览器访问http://192.168.60.10/project/server/测试

转:http://www.111cn.net/sys/CentOS/55316.htm