网站后缀org,制作ppt的步骤,网站创建的流程是什么,如何看网站是用什么框架做的一#xff0c;安装必须的软件包.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 (…一安装必须的软件包.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 /home/svn2新建一个版本仓库# svnadmin create /home/svn/Android3初始化版本仓库中的目录#cd /home/svn# mkdir Android Android/server Android/client Android/test (建立临时目录)# svn import Android/ file:///home/svn/Android -m 初始化SVN目录# rm -rf Android (删除临时建立的目录)【备建临时目录可以不用本文是为了测试用。】4添加用户要添加SVN用户非常简单只需在/home/svn/Android/conf/passwd文件添加一个形如“usernamepassword的条目就可以了.为了测试我添加了如下内容:[users]# harry harryssecret# sally sallyssecretpm pm_pwserver_group server_pwclient_group client_pwtest_group test_pw5修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略以下是参考:[groups]project_p pmproject_s server_groupproject_c client_groupproject_t test_group[project:/]project_p rw* 【备:】上面改成 [/]【备结束】[project:/server]project_p rwproject_s rw* [project:/client]project_p rwproject_c rw* [project:/doc]project_p rwproject_s rwproject_c rwproject_t rw* 以上信息表示只有pm有根目录的读写权server_group能访问server目录client_group能访问client目录所有人都可以访问doc目录.6修改svnserve.conf文件,让用户和策略配置升效.svnserve.conf内容如下:[general]anon-access noneauth-access writepassword-db /home/svn/project/conf/passwdauthz-db /home/svn/project/conf/authz【备可以将passwd 和authz 文件放在/home/svn/conf 下然后每个项目的svnserve.conf文件中指明password-db /home/svn/conf/passwd 和 authz-db /home/svn/conf/authz】7启动服务器# svnserve -d -r /home/svn8测试服务器# svn co svn://192.168.60.10/projectAuthentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for root:Authentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: server_groupPassword for server_group:svn: Authorization failed ( server_group没用根目录的访问权 )# svn co svn://192.168.60.10/projectAuthentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for root:Authentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: pmPassword for pm:A project/testA project/serverA project/clientChecked out revision 1. ( 测试提取成功 )# cd project/server# vim main.c# svn add main.c# svn commit main.c -m 测试一下我的C程序,看什么看,不行啊??Adding main.cTransmitting file 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, 2009-11-20use warnings;use strict;#open the svn passwd fileopen (FILE, passwd) or die (Cannot open the passwd file!!!\n);#clear the apache passwd fileopen (OUT_FILE, webpasswd) or die (Cannot open the webpasswd file!!!\n);close (OUT_FILE);#beginforeach () {if($_ ~ m/^[^#].*/) {$_ ~ s///;htpasswd -b webpasswd $_;}}# ./PtoWP.pl ( 先给该脚本加可执行权限然后执行以转换密码 )Adding password for user pmAdding password for user server_groupAdding password for user client_groupAdding password for user test_group现在目录下会多一个webpasswd文件。2修改httpd.conf添加关于SVN服务器的内容编辑/etc/httpd/conf/httpd.conf在最后添加如下信息:DAV svnSVNPath /home/svn/project/AuthType BasicAuthName svn for projectAuthUserFile /home/svn/project/conf/webpasswdAuthzSVNAccessFile /home/svn/project/conf/authzSatisfy allRequire valid-user3启动HTTPD服务器# service httpd restartStopping httpd: [FAILED]Starting httpd: [ OK ]4用浏览器访问http://192.168.60.10/project/server/测试测试结果如下图所示( 测试成功 )四配置邮件提醒支持1安装Perl模块Module::Build# wget http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Module-Build-0.36_11.tar.gz# tar xvf Module-Build-0.36_11.tar.gz# cd Module-Build-0.36_11# perl Build.PL# ./Build# ./Build test# ./Build install# cd ..2安装Perl模块Authen::SASL# wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Authen-SASL-2.15.tar.gz# 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 http://search.cpan.org/CPAN/authors/id/A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz# tar xvf Net-SMTP_auth-0.08.tar.gz# cd Net-SMTP_auth-0.08# perl Makefile.PL# make test# make install# cd ..4安装Perl模块SVN::Notify# wget http://search.cpan.org/CPAN/authors/id/D/DW/DWHEELER/SVN-Notify-2.80.tar.gz# 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 restartShutting down sendmail: [FAILED]Starting sendmail: [ OK ]Starting sm-client: [ OK ]6配置自动发邮件脚本修改post-commit脚本,以支持邮件通知功能.# cd /home/svn/project/hooks/# vim post-commit内容如下:#!/bin/shREPOS$1REV$2/usr/bin/svnnotify --repos-path $1 --revision $2 --to caodaijunpica.com --from caodaijunfeinno.com --handler HTML::ColorDiff --with-diff --smtp localhost --smtp-user root --smtp-pass 5201314318 -c UTF-8 -g zh_CN -o raw --svnlook /usr/bin/svnlook --subject-prefix [SVN Update](to参数代表接收邮件的地址可以有多个当你有多个老大的时候这就很重要了)。from参数是虚拟的代表你的发送地址一般情况下这个参数 不重要但如果接收者的邮件服务器有反垃圾邮件的功能需要判定源地址的话这个参数是否合法就显得很重要了)再给该脚本添加可执行权限# chmod x post-commit7再次提交时就会给指定邮件地址发信了。如下图所示:五其它常用配置1强制写log脚本配置pre-commit文件要求用户每次更新文件都必须写log.# cd /home/svn/project/hooks/# vim pre-commit文件内容如下:#!/bin/shREPOS$1TXN$2SVNLOOK/usr/bin/svnlookLOGMSG$SVNLOOK log -t $TXN $REPOS | grep [a-zA-Z0-9] | wc -cif [ $LOGMSG -lt 5(要求的log长度依实际需要修改) ];thenecho -e \nEmpty log message not allowed. Commit aborted! 12exit 1fi配置完成后给本件加上可执行权限。再提交代码时就必须按要求写注释了)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-revprop-change文件内容如下:REPOS$1REV$2USER$3PROPNAME$4if [$PROPNAME svn:log];then exit 0;fiexit 1配置完后加可执行权限升效。六备份管理svn服务器的定期备份是很重要的最简单的方式是定时备份仓库目录。1新建备份目录# mkdir /opt/project_backup2编写备份脚本# cd /home/svn/# vim project_backup.sh内容如下:#!/bin/bash#write by huabo, 2009-11-20cd /home/svnnow/bin/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 ]thenresultOK!!elseresultFalse!!fi#send mail to administrator/bin/mail caodaijunpica.com -s project_backup_$now project.log# cd SvnStat-1.0# java -classpath 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 http://downloads.sourceforge.net/project/statsvn/statsvn/0.7.0/statsvn-0.7.0.zip?use_mirrorjaist# unzip statsvn-0.7.0.zip# cd statsvn-0.7.02生成statsvn数据# mkdir /var/www/html/statsvn# java -jar statsvn.jar -verbose -output-dir /var/www/html/statsvn/ /root/project.log /root/project3用浏览器测测试效果如下图九配置codestriker.1.安装codestriker依赖的perl包.# perl -MCPAN -e install Template2.下载codestriker# wget http://downloads.sourceforge.net/project/codestriker/codestriker/1.9.10/codestriker-1.9.10.tar.gz?use_mirrorjaistts1279246587# mkdir /var/www/codestriker# cd /var/www/codestriker# tar xvf /path/codestriker-1.9.10.tar.gz# chown -R apache.apache codestriker-1.9.103.配置数据库# 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 PRIVILEGES;quit4.配置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.pl6.配置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-scriptPerlHandler ModPerl::RegistryOptions ExecCGIAllowOverride NoneAllow from all7.重启HTTP服务器# service httpd restart【备】在svnserve.conf:文件中去掉authz-db authz前面的#号会出现的认证失败。造成此原因的主要问题就是authz文件中权限没有配置好。例如创建prj1库svnadmin create prj1修改配置文件svnserve.conf:[general]anon-access readauth-access writepassword-db passwdauthz-db authzpasswd[users]tom tomauthz:[groups]project_1 tom[prj1:/]project_1 rw访问svn://192.168.1.105/prj1则会出现认证失败原因是svn://192.168.1.105/prj1 访问时找不到tom对应的库就是因为[prj1:/]不是一个有效的库路径把[prj1:/]改为[/]既可以了[/]代表根目录下所有的资源如果要限定资源可以加上子目录即可。【备份与恢复】linux中SVN备份有三种方式1、svnadmin dump 是官方推荐的备份方式优点是比较灵活可以全量备份也可以增量备份并提供版本恢复机制。缺点是版本数过大增长到数万以上那么dump与load过程都将非常慢耗时长不利于快速进行灾难恢复。在版本数较小的情况下可以使用这种备份方式。2、svnadmin hotcopy 只能进行全量拷贝不能进行增量备份。优点是备份较快恢复也快。缺点是比较耗费硬盘。3、svnsync实际是制作2个镜像库当一个坏了的时候可以迅速切换到另一个。需1.4以上版本支持这里不讨论。svnadmin dump方式1、全量备份一个仓库#svnadmin dump /svn/svn/APP /svn/svndump/APP_dump160802在另一台机器上配置同样的SVN服务器导入dump出来的备份文件#svnadmin load /svn/svn/APP 将原先服务器的配置文件备份后复制到新服务器中 authz、passwd、svnserver.conf2、增量备份#svnadmin dump /svn/svn/APP -r 5200:5600 --incremental /svn/svndump/APP_56005200是上次全量备份时的最新版本5600是当前最新版本。导入svnadmin load /svn/svn/APP svnadmin hotcopy方法:1. 备份svnadmin hotcopy /svn/svn/APP/ /data/svn.date %F:%T.bak –clean-logs如果传递–clean-logs选项svnadmin会执行热拷贝操作然后删除不用的Berkeley DB日志文件。你可以在任何时候运行这个命令得到一个版本库的安全拷贝不管其它进程是否使用这个版本库。2. 还原svnadmin hotcopy /home/svn.date %F:%T.bak /home/svn.date %F:%T.bak