ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:27.20KB ,
资源ID:9681960      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9681960.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SVN for RedHat 安装手册.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SVN for RedHat 安装手册.docx

1、SVN for RedHat 安装手册SVNFORRedHat安装与配置一、 安装前准备 31.1 系统检查与确认 32.1.1. 系统启动方式 3 确认内核版本 3 发行版本 3 确定主机名 3 字符集 31.2 Apacha检查与确认 3 检查apache是否安装 3 查看httpd是否启动 4 查看apache所占的端口 4二、 SVN服务器的安装 42.1 安装 4 安装包清单 4 查询和安装 42.2 检查 5 安装版本 5 mod_dav_svn 52.3. 配置 5 SVN配置 5 Apache配置 7三、 设计远程修改密码程序 123.1. 代码开发 123.2. 代码编写关键

2、点 193.3. 注意细节 19四、 数据移植(WinLinux) 19五、 附录 195.1 Subversion中BDB和FSFS两种格式的比较 195.2 FAQ 225.3 htpasswd 23一、 安装前准备1.1 系统检查与确认2.1.1. 系统启动方式文件/etc/inittabid:3:initdefault:其中3是指启动方式,安装后默认是5,但实际需要的是3.2.1.2. 确认内核版本#unamea本机内核是:Linuxsvn#1SMPTueAug1815:51:48EDT2009x86_64x86_64x86_64GNU/Linux2.1.3. 发行版本lsb_rele

3、asea目前本机安装版本是:RedHatEnterpriseLinuxServerrelease5.4(Tikanga)2.1.4. 确定主机名#hostname本主机名目前是:svn2.1.5. 字符集将”/etc/sysconfig/i18n”内容改为LANG=zh_CN1.2 Apacha检查与确认1.2.1. 检查apache是否安装#rpm-qhttpd1.2.2. 查看httpd是否启动#servicehttpdstatus重启httpd,查看启动是否正常#servicehttpdrestart刚安装的apache一般都会报下列信息:Startinghttpd:httpd:Coul

4、dnotreliablydeterminetheserversfullyqualifieddomainname,using127.0.0.1forServerName说明:没有在httpd.conf文件中配置ServerName项#vi/etc/httpd/conf/httpd.conf添加ServerName主机名(地址):端口/*端口缺省是80*/1.2.3. 查看apache所占的端口#netstatlnp|grephttpd二、 SVN服务器的安装2.1 安装2.1.1. 安装包清单postgresql-libs-perl-URI-1.35-32.1.2. 查询和安装安装这些包之前,检

5、查一下这些安装包是否已经存在和它的版本。例:#rpmqapr没安装的,用rpm命令安装,如 #rpmivh/mnt/CentOS/apr-1.2.7-11.i386.rpm注意:sqlite安装#rpm-Uvh2.2 检查2.2.1. 安装版本#svnserve-version或#svn-version2.2.2. mod_dav_svnmod_dav_svn.so是SVN与HTTP通信的插件,它需mod_dav.so的配合。要安装成功后,存放在/etc/httpd/modules目录下.#ls/etc/httpd/modules/mod_dav_svn.so#ls/etc/httpd/mod

6、ules/mod_dav.so2.3. 配置2.3.1. SVN配置1. 将仓库目录所有权赋于svn组和用户#chownRapache:apache/svn2. 启动SVN服务su-apache-csvnserve-d-r/repository其中:susvn表示以用户svn的身份启动svn-d表示以daemon方式(后台运行)运行-r/opt/svndata指定根目录是/opt/svndata检查:psef|grepsvnserve如果显示如下,即为启动成功:svn69411015:07?00:00:00svnserve-d-r/repository3. 开机时自动启动在/etc/init.

7、d/新建一文件,如svn_sany,文件内容如下#/etc/rc.d/init.d/svn_sany#chkconfig:3452080#description:SVNserverstartstoprestartif!-f/usr/bin/svnservethenechosvnserverstartup:cannotstartexitficase$1instart)echoStartingsvnserve./usr/bin/svnserve-d-r/svnechoFinished!;stop)echoStopingsvnserve.killallsvnserveechoFinished!;re

8、start)$0stop$0start;*)echoUsage:svnstart|stop|restartexit1esac4. 将该文件的属性改为可执行#chmod755/etc/rc.d/init.d/svn_sany5. 增加svn服务chkconfig-addsvn_sany6. 建测试库:test,test1#sulapache$svnadmincreate/svn/test7. 配置用户权限 来到/svn/库名/conf目录,修改svnserve.conf,修改结果如下 generalanon-access=noneauth-access=writepassword-db=pass

9、wdauthz-db=authz#realm=MyFirstRepository修改passwd,修改结果如下usersharry=123456sally=123456修改authz,修改结果如下groupsmanager=harry,sally#定义用户组/#源码库的根目录harry=rw#用户harry有读写权限*=#其它用户的权限为空/trunk#源码库的根目录下的trunk目录,可通过客户端工具新建harry_and_sally=rw#用户组harry_and_sally*=#其它用户的权限为空/tag#源码库的根目录下的tag目录,可通过客户端工具新建sally=rw#用户sally

10、有读写权限*=#其它用户的权限为空 注:SVN权限能继承,但是通过权限重新定义来取消继承,通过上面实例可以看出。2.3.2. Apache配置1. mod_dav_svn.so检测 模块加载让Apache在启动的时候加载上述mod_dav_svn.so和mod_dav.so模块。#vi/etc/httpd/conf/httpd.confLoadModuledav_modulemodules/mod_dav.so#vi/etc/httpd/conf.d/subversion.confLoadModuledav_svn_modulemodules/mod_dav_svn.soDAVsvnSVNPa

11、th/svn/test1 重启Httpd服务#servicehttpdrestart打开浏览器,输入/svn将会看到如下画面:这表示Apache的dav_svn模块已经可以正常工作了。用户可以使用任何一种Subversion的客户端通过Http协议访问你的版本库。2. 多个版本库如果想要指定多个版本库,可以用多个Location标签,也可以使用SVNParentPath代替SVNPath,例如在/svn下有多个版本库repos1,repos2等等,用如下方式指定:#vi/etc/httpd/conf.d/subversion.confLoadModuledav_svn_modulemodule

12、s/mod_dav_svn.soDAVsvnSVNParentPath/svnSVNListParentPathon重启apache,打开浏览器,输入/svn将会看到如下画面:表示配置成功.现在你的版本库任何人都可以访问,并且有完全的写操作权限。也就是说任何人都可以匿名读取,修改,提交,以及删除版本库中的内容。3. 用户访问限制首先需要创建一个用户文件。Apache提供了一个工具htpasswd,用于生成用户文件,可以在Apache的安装目录下找到。具体使用方法如下: htpasswdc/svn/passwd.confusernamehtpasswd新建一个用户文件。创建好的文件内容是用户名加

13、上密码的MD5密文。接下来修改subversion.conf,在Location标签中加入如下内容:LoadModuledav_svn_modulemodules/mod_dav_svn.soDAVsvnSVNParentPath/svnSVNListParentPathonAuthTypeBasicAuthNameSanySVNUserValidateAuthuserFile/svn/passwd.confRequirevalid-user重新启动Apache,打开浏览器访问版本库。Apache会提示你输入用户名和密码来认证登陆了,现在只有passwd.conf文件中设定的用户才可以访问版本

14、库。也可以配置只有特定用户可以访问,替换上述Requirevalid-user为Requireusertonyrobert将只有tony和robert可以访问该版本库。有的时候也许不需要这样严格的访问控制,例如大多数开源项目允许匿名的读取操作,而只有认证用户才允许写操作。为了实现更为细致的权限认证,可以使用Limit和LimitExcept标签。例如: requirevalid-user如上配置将使匿名用户有读取权限,而限制只有passwordfile中配置的用户可以使用写操作。如果这还不能满足你的要求,可以使用Apache的mod_authz_svn模块对每个目录进行认证操作。4. 用mod

15、_authz_svn进行目录访问控制首先需要让Apache将mod_authz_svn模块加载进来。subversion.conf修改如下:LoadModuledav_svn_modulemodules/mod_dav_svn.soLoadModuleauthz_svn_modulemodules/mod_authz_svn.soDAVsvnSVNParentPath/svnSVNListParentPathonAuthTypeBasicAuthNameSanySVNUserValidateAuthuserFile/svn/passwd.confAuthzSVNAccessFile/svn/s

16、vn_authzSatisfyAnyRequirevalid-user由于公司按DSS(决策支持系统板块)、ERP(ERP运营管理板块)、PLM(研发管理板块)、SCM(供应链管理板块)、ISMIS(信息安全管理体系)、ITSP(IT支撑平台),即四个板块一个体系和一个平台来分类存放,外加一个exercise(学习),因此最后的subversion.conf配置内容如下:LoadModuledav_svn_modulemodules/mod_dav_svn.soLoadModuleauthz_svn_modulemodules/mod_authz_svn.soDAVsvnSVNParentPa

17、th/svnSVNListParentPathonAuthTypeBasicAuthNameSanySVNUserValidateAuthuserFile/svn/passwd.confAuthzSVNAccessFile/svn/svn_authzSatisfyAnyRequirevalid-userDAVsvnSVNParentPath/svn/dssSVNListParentPathonAuthTypeBasicAuthNameSanySVNUserValidateAuthuserFile/svn/passwd.confAuthzSVNAccessFile/svn/svn_authzSa

18、tisfyAnyRequirevalid-userDAVsvnSVNParentPath/svn/erpSVNListParentPathonAuthTypeBasicAuthNameSanySVNUserValidateAuthuserFile/svn/passwd.confAuthzSVNAccessFile/svn/svn_authzSatisfyAnyRequirevalid-userDAVsvnSVNParentPath/svn/exerciseSVNListParentPathonAuthTypeBasicAuthNameSanySVNUserValidateAuthuserFil

19、e/svn/passwd.confAuthzSVNAccessFile/svn/svn_authzSatisfyAnyRequirevalid-userDAVsvnSVNParentPath/svn/ismisSVNListParentPathonAuthTypeBasicAuthNameSanySVNUserValidateAuthuserFile/svn/passwd.confAuthzSVNAccessFile/svn/svn_authzSatisfyAnyRequirevalid-userDAVsvnSVNParentPath/svn/itspSVNListParentPathonAu

20、thTypeBasicAuthNameSanySVNUserValidateAuthuserFile/svn/passwd.confAuthzSVNAccessFile/svn/svn_authzSatisfyAnyRequirevalid-userDAVsvnSVNParentPath/svn/plmSVNListParentPathonAuthTypeBasicAuthNameSanySVNUserValidateAuthuserFile/svn/passwd.confAuthzSVNAccessFile/svn/svn_authzSatisfyAnyRequirevalid-user三、

21、 设计远程修改密码程序3.1. 代码开发1. 在/var/www/cgi-bin目录下新增ChangePasswd.cgi和ChangePasswd.ini两文件。#touch/var/www/cgi-bin/ChangePasswd.cgi#touch/var/www/cgi-bin/ChangePasswd.ini2. 赋权#chmod755#touch/var/www/cgi-bin/ChangePasswd.*3. 编程ChangePasswd.cgi#!/usr/bin/perl-wusestrict;useCGI;my$time=localtime;my$remote_id=$EN

22、VREMOTE_HOST|$ENVREMOTE_ADDR;my$admin_email=$ENVSERVER_ADMIN;my$cgi=newCGI;my$pwd_not_alldiginal=密码不能全为数字;my$pwd_not_allchar=密码不能全为字符;my$user_not_exists=该用户不存在;my$file_not_found=文件不存在,请联系管理员;my$authuserfile;my$logfile;my$pwdminlen;my$title;my$description;my$yourname;my$oldpwd;my$newpwd1;my$newpwd2;m

23、y$btn_change;my$btn_reset;my$changepwdok;my$changepwdfailed;my$oldpwderror;my$passmustgreater;my$twopassnotmatched;my$entername;my$enterpwd;my$errorpwd;my$back;&IniInfo;if($cgi-param()#8my$User=$cgi-param(UserName);my$UserPwd=$cgi-param(OldPwd);my$UserNewPwd=$cgi-param(NewPwd1);my$MatchNewPwd=$cgi-p

24、aram(NewPwd2);if(!$User)&Writer_Log(Enternousername);&otherhtml($title,$entername,$back);elsif(!$UserPwd)&Writer_Log(EnternoOldPasswd);&otherhtml($title,$enterpwd,$back);elsif(length($UserNewPwd)$pwdminlen)&Writer_Log(Passwordslengthmustgreaterthan.$pwdminlen);&otherhtml($title,$passmustgreater.$pwd

25、minlen,$back);elsif($UserNewPwd=/d+$/)&Writer_Log(NewPasswdisntalldiginal);&otherhtml($title,$pwd_not_alldiginal,$back);elsif($UserNewPwd=/A-Za-z+$/)&Writer_Log(NewPasswdisntallchar);&otherhtml($title,$pwd_not_allchar,$back);elsif($UserNewPwdne$MatchNewPwd)&Writer_Log(Twonewpasswordsarenotmatched);&

26、otherhtml($title,$twopassnotmatched,$back);elseif($authuserfile)#6openUserFile,$authuserfileordie打开文件失败:$!;while()#5my$varstr=$_;if($varstr=/($User)/)#3my$eqpos=index($varstr,:);my$UserName=substr($varstr,0,$eqpos);my$cryptpwd=substr($varstr,$eqpos+1,13);nextif($UserNamene$User);if(crypt($UserPwd,$c

27、ryptpwd)eq$cryptpwd)#amy$rc=system(/usr/bin/htpasswd-b$authuserfile$User$UserNewPwd);if($rc=0)#1&Writer_Log($User.:ChangePasswd);&otherhtml($title,$changepwdok,$back);#1else#2&Writer_Log($User.:ChangePasswdFailed);&otherhtml($title,$changepwdfailed,$back);#2exit;#aelse#b&Writer_Log(OldPasswdisIncorr

28、ect);&otherhtml($title,$errorpwd,$back);#bexit;#3else#4if(eof)&Writer_Log($User.:nothisuser);&otherhtml($title,$user_not_exists,$back);exit;elsenext;#4#5closeUserFile;#6else#7&Writer_Log($authuserfile.:nofound);&otherhtml($title,$file_not_found,$back);#7#8else&Index_Html;subIniInfomy$inifile=/var/www/cgi-bin/ChangePasswd.ini;openCGI_INI_FILE,$inifileordie打开文件失败:$!;while()my$eqpos=index($_,=);my$le

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1