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


发布评论