收藏 分销(赏)

linux下搭建SVN服务器完全手册模板.doc

上传人:精*** 文档编号:3033180 上传时间:2024-06-13 格式:DOC 页数:18 大小:504.04KB
下载 相关 举报
linux下搭建SVN服务器完全手册模板.doc_第1页
第1页 / 共18页
linux下搭建SVN服务器完全手册模板.doc_第2页
第2页 / 共18页
linux下搭建SVN服务器完全手册模板.doc_第3页
第3页 / 共18页
linux下搭建SVN服务器完全手册模板.doc_第4页
第4页 / 共18页
linux下搭建SVN服务器完全手册模板.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、系统环境 RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum一,安装必需软件包. yum install 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 /h

2、ome/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条目

3、就能够了.为了测试,我添加了以下内容: 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 = server_group project_c = client_group project_t = test_gr

4、oup 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 = rw project_c = rw project_t = rw * = 以上信息表示,只有pm有根目录读写权,server_group能访问server目录,client_group能访问client目录,全部些人全部能够访问doc目录. 6,修改sv

5、nserve.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 8,测试服务器 # svn co svn:/192.168.60.10/project Authentication realm: 92731041-2dae-4c23-97fd

6、-9e1ed7f0d18d Password for root: Authentication realm: 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: 92731041-2dae-4c23-97fd-9e1ed7f0d18d Password for

7、 root: Authentication realm: 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 f

8、ile data . Committed revision 2. ( 测试提交成功 )三,配置SVN服务器HTTP支持 1,转换SVN服务器密码 因为SVN服务器密码是明文,HTTP服务器不和支持,所以需要转换成HTTP支持格式。我写了一个Perl脚本完成这个工作. 脚本内容以下: # cd /home/svn/project/conf/ # cat PtoWP.pl #!/usr/bin/perl # write by huabo, -11-20 use warnings; use strict; #open the svn passwd file open (FILE, passwd) o

9、r 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 () if($_ = m/#.*=/) $_ = s/=/; htpasswd -b webpasswd $_; # ./PtoWP.pl ( 先给该脚本加可实施权限,然后实施以转换密码 ) Adding password for user pm Addi

10、ng 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,在最终添加以下信息: DAV svn SVNPath /home/svn/project/ AuthType Basic AuthName svn for project AuthUserFile /home/svn/proj

11、ect/conf/webpasswd AuthzSVNAccessFile /home/svn/project/conf/authz Satisfy all Require valid-user 3,开启HTTPD服务器 # service httpd restart Stopping httpd: FAILED Starting httpd: OK 4,用浏览器访问 测试结果以下图所表示: ( 测试成功 )四,配置邮件提醒支持 1,安装Perl模块Module:Build # wget # tar xvf Module-Build-0.36_11.tar.gz # cd Module-Bui

12、ld-0.36_11 # perl Build.PL # ./Build # ./Build test # ./Build install # cd . 2,安装Perl模块Authen:SASL # wget # tar xvf Authen-SASL-2.15.tar.gz # cd Authen-SASL-2.15 # perl Makefile.PL # make test # make install # cd . 3,安装Perl模块Net:SMTP_auth # wget # tar xvf Net-SMTP_auth-0.08.tar.gz # cd Net-SMTP_auth

13、-0.08 # perl Makefile.PL # make test # make install # cd . 4,安装Perl模块SVN:Notify # wget # tar xvf SVN-Notify-2.80.tar.gz # cd SVN-Notify-2.80 # perl Build.PL # ./Build # ./Build test # ./Build install # cd . 5,开启邮件服务器 # service sendmail restart Shutting down sendmail: FAILED Starting sendmail: OK Sta

14、rting sm-client: OK 6,配置自动发邮件脚本 修改post-commit脚本,以支持邮件通知功效. # cd /home/svn/project/hooks/ # vim post-commit 内容以下: #!/bin/sh REPOS=$1 REV=$2 /usr/bin/svnnotify -repos-path $1 -revision $2 -to -from -handler HTML:ColorDiff -with-diff -smtp localhost -smtp-user root -smtp-pass 514318 -c UTF-8 -g zh_CN -

15、o raw -svnlook /usr/bin/svnlook -subject-prefix SVN Update (to参数代表接收邮件地址,能够有多个,当你有多个老大时候,这就很关键了,:)。from参数是虚拟,代表你发送地址,通常情况下,这个参数不关键,但假如接收者邮件服务器有反垃圾邮件功效,需要判定源地址话,这个参数是否正当就显得很关键了) 再给该脚本添加可实施权限 # chmod +x post-commit 7,再次提交时,就会给指定邮件地址发信了。 以下图所表示:五,其它常见配置 1,强制写log脚本 配置pre-commit文件,要求用户每次更新文件全部必需写log. # c

16、d /home/svn/project/hooks/ # vim pre-commit 文件内容以下: #!/bin/sh REPOS=$1 TXN=$2 SVNLOOK=/usr/bin/svnlook LOGMSG=$SVNLOOK log -t $TXN $REPOS | grep a-zA-Z0-9 | wc -c if $LOGMSG -lt 5(要求log长度,依实际需要修改) ; then echo -e nEmpty log message not allowed. Commit aborted! 1&2 exit 1 fi 配置完成后,给本件加上可实施权限。再提交代码时,就必

17、需按要求写注释了,:) 2,可修改log脚本 配置pre-revprop-change文件,此文件在show log中修改log时会运行,得到修改权限,不然会报错:DAV request failed; its possible that the repositorys pre-revprop-change hook either failed or is non-existent. At least one property change failed; repository is unchanged # cd /home/svn/project/hooks/ # vim pre-revpr

18、op-change 文件内容以下: REPOS=$1 REV=$2 USER=$3 PROPNAME=$4 if $PROPNAME = svn:log;then exit 0;fi exit 1 配置完后加可实施权限升效。六,备份管理 svn服务器定时备份是很关键,最简单方法是定时备份仓库目录。 1,新建备份目录 # mkdir /opt/project_backup 2,编写备份脚本 # cd /home/svn/ # vim project_backup.sh 内容以下: #!/bin/bash #write by huabo, -11-20 cd /home/svn now=/bin/

19、date +%Y%m%d /bin/tar czvf project_backup_$now.tar.gz project/ & rm -rf /opt/project_backup/* & /bin/mv project_backup_*.tar.gz /opt/project_backup/ if $? = 0 then result=OK! else result=False! fi #send mail to administrator /bin/mail -s project_backup_$now project.log # cd SvnStat-1.0 # java -class

20、path SvnStat-all.jar de.agentlab.svnstat.SvnStat -jar SvnStat-all.jar -r /root/project.log -d /var/www/html/ 5,用浏览器登录即可看到很多统计出来图表。大致以下图所表示:(俺测试代码极少,生成图不成样子,拿官方图来充当一下,:))八,用statsvn分析SVN数据 1,下载statsvn # wget # unzip statsvn-0.7.0.zip # cd statsvn-0.7.0 2,生成statsvn数据 # mkdir /var/www/html/statsvn # jav

21、a -jar statsvn.jar -verbose -output-dir /var/www/html/statsvn/ /root/project.log /root/project 3,用浏览器测测试效果以下图:九,配置codestriker. 1.安装codestriker依靠perl包. # perl -MCPAN -e install Template 2.下载codestriker # wget # mkdir /var/www/codestriker # cd /var/www/codestriker # tar xvf /path/codestriker-1.9.10.ta

22、r.gz # chown -R apache.apache codestriker-1.9.10 3.配置数据库 # service mysqld restart # mysql -uroot mysql 实施: CREATE DATABASE codestrikerdb CHARACTER SET utf8; GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP,REFERENCES ON codestrikerdb.* TO codestrikerlocalhost IDENTIFIED BY cspasswd; FLUSH P

23、RIVILEGES; quit 4.配置codestriker # cd codestriker-1.9.10/ # vim codestriker.conf 注意以下几点(具体可查看codestriker安装文档) a.数据库用户名密码要配对 b.svn数据仓库要配对,我以下: valid_repositories = ( svn:file:/home/svn/project, ) 5.实施codestriker安装脚本 # cd bin/ # ./install.pl 6.配置http支持 # vim /etc/httpd/conf/httpd.conf 在最终面加上以下内容: Alias /codestriker/ /var/www/codestriker/codestriker-1.9.10/cgi-bin/ Alias /codestrikerhtml/ /var/www/codestriker/codestriker-1.9.10/html/ SetHandler perl-script PerlHandler ModPerl:Registry Options +ExecCGI AllowOverride None Allow from all 7.重启HTTP服务器 # service httpd restart 8.在浏览器中输入,以下图:

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服