2024年3月19日发(作者:)

SVN 月服务器 + in 搭建

系统环境

关闭 iptables 和 selinux

一、SVN服务器搭建

1. 安装必备软件包

yumi nstallsubversio nm ysql-serverhttpdmod_dav_sv nm od_perlse ndmailwgetgcc-c++make un zipper

l*n tsysvvim-e nhanced

说明:

subversion(SVN 服务器

MySQL -server(用于 codestriker)

httpdmod_dav_svnmod_perl( 用于支持 WEB方式管理SVN服务器

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

wgetgcc-c++makeunzipperl*( 必备软件包)

n tsysvvim-e nhan ced(可选)

2. 基本的SVN服务器配置

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

mkdir/home/sv n

2) 新建一个版本仓库

svn admi ncreate/home/sv n/project

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

mkdirprojectproject/serverproject/clientproject/test( 建立临时目录 )

rm-rfproject(删除临时建立的目录

4) 添加用户

要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd 文件添加一个形如

“ username=password的条目就可以了。为了测试,我添加了如下内容

[users]

#harry=harryssecret

#sally=sallyssecret

liqi ng=liqi ng

liujj=liujj

liufj=liufj

5) 修改用户访问策略

/home/sv n/project/co nf/authz

[groups]

admi n=liqi ng,liujj

project_s=liq in g,liujj

project_c=liqi ng,liujj

project_t=liqi ng,liujj

[project:/]

@adm in=rw

*二

[project:/server]

@adm in=rw

@project_s=rw

*二

[project:/clie nt]

@adm in=rw

@project_c=rw

*二

[project:/test]

@adm in=rw

@project_s=r

@project_c=r

@project_t=r

*二

说明:以上信息表示,只有 project_p用户组有根目录的读写权。r表示对该目录有读权限,

该目录有写权限,rw表示对该目录有读写权限。最后一行的

其他任何人都被禁止访问本目录。这个很重要,一定要加上!

6) 修改文件

让用户和策略配置升效.

内容如下:

[ge neral]

w表示对

记录用户的访问策略,以下是参考

*=表示,除了上面设置了权限的用户组之外,

anon-access=none

auth-access=write

password-db=/home/sv n/project/c on f/passwd

authz-db=/home/sv n/project/c on f/authz

7) 启动服务器

#sv nserve-d-r/home/sv n

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

#ps-aux|grepsv nserve

#kill-9ID 号

#sv nserve-d-r/home/sv n

8) 测试服务器

Aproject/server |

Aproject/server/

Aproject/clie nt

Aproject/test |

Checkedoutrevision2.(测试提取成功

)

二、配置SVN服务器的HTTP支持

1. 转换SVN服务器的密码

由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成

了一个Perl脚本完成这个工作.

#!/usr/b in/perl

#writebyhuabo,2009-11-20

usewar nin gs;

usestrict;

#ope nthesv npasswdfile

ope n( FILE,"passwd")ordie("Ca nno tope nthepasswdfile!!! n");

#cleartheapachepasswdfile

ope n( OUT_FILE,">webpasswd")ordie("Ca nno tope nthewebpasswdfile!!! n");

close(OUT FILE);

#begi n

foreach(){

if($_=

m/AF#].*=/){

$_=~s/=〃;

'htpasswd-bwebpasswd$_';

}

}

[root@MyCloudServerco nf]#chmod+

HTTP支持的格式。我写

[root@MyCloudServerco nf]#./

Addi ngpasswordforuserli qing

Addi ngpasswordforuserliujj

Addi ngpasswordforuserliufj

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

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

编辑尼tc/httpd/co nf/ nf

vLocati on/project>

DAVsv n

SVNPath/home/sv n/project/

AuthTypeBasic""|

AuthName"sv nforproject"

AuthUserFile/home/sv n/project/c on f/webpasswd

AuthzSVNAccessFile/home/sv n/project/c on f/authz

Satisfyall

Requirevalid-user

v/Locati on>

3. 修改svn目录的属主为apache帐号

chow /home/sv n/project/

4. 重启Web服务器

[root@MyCloudServersv n]#httpd-krestart

5. 用浏览器访问

|

,在最后添加如下信息

三、in 搭建

修改 Subversionauthorization 和userauthorization 两个文件完成其管理功能(现不支持数据库

userauthorizati on 的那种),整体使用下来给我的感觉就是两个字简单,从安装到配置到使用到架构,都很简 单。

1.

2.

创建SVN权限信息文件

配置SVN

vLocatio n/svn>

DAVsv n

SVNListPare ntPath on

SVNPare ntPath/home/svn

AuthTypeBasic

AuthName"Subversio nrepository"

AuthUserFile/var/www/s vncon fig/passwdfile

AuthzSVNAccessFile/var/www/s vncon fig/accessfile

Satisfyall

Requirevalid-user

v/Locatio n>

3. 安装php

[root@MyCloudServerco nf]#yumi nstallphp

4.

5.

6.

7.

下载 in

解压 in

拷贝项目到 Webserver目录中

赋给webserver用户读写项目权限

[root@MyCloudServertools]#chmod-R777/var/www/html/sv nadmi n/data/

[root@MyCloudServertools]#chow n-Rapache:apache/var/www/html/s vn admi n/

8. 重启 httpd

httpd-krestart

o