




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux部署SVN详解1 安装操作系统安装系统采用CentOS-6.2/Database Server2 安装配置apache与SVN1) 数据包安装顺序:(安装包在CentOS-6.2盘的Packages目录下均可找到)a) apr-1.3.9-3.el6_1.2.i686.rpmb) apr-util-1.3.9-3.el6_0.1.i686.rpmc) httpd-2.2.15-15.el6.centos.i686.rpm依赖文件:httpd-tools-2.2.15-15.el6.centos.i686.rpm 与apr-util-ldap-1.3.9-3.el6_0.1.i686.rpmd) sqlite-3.6.20-1.el6.i686.rpme) subversion-1.6.11-2.el6_1.4.i686.rpm依赖文件:neon-0.29.3-1.2.el6.i686.rpmneon依赖文件:pakchois-0.4-3.2.el6.i686.rpm与libproxy-0.3.0-2.el6.i686.rpm安装libproxy命令:三个包同时安装rpm -ivh libproxy-0.3.0-2.el6.i686.rpm libproxy-bin-0.3.0-2.el6.i686.rpm libproxy-python-0.3.0-2.el6.i686.rpmf) mod_dav_svn-1.6.11-2.el6_1.4.i686.rpm安装后将生成文件:/etc/httpd/conf.d/subversion.conf2) 修改apache(即httpd)配置文件#vi /etc/httpd/conf/httpd.conf执行上述命令后,对文件进行以下修改:ServerName localhost:80localhost表示自己的IP地址(找到上面一行并做类似修改后保存退出)#service httpd start#chkconfig httpd on文件修改完成后,启动http服务并使用chkconfig命令设置开机自启动。3) 创建自己的svn版本库#cd /home #mkdir svn#cd svn#mkdir data conf#cd data#svnadmin create newrepos#cd /home#chown R apache.apache svn上述步骤的过程功能简要说来就是:在home目录下创建新的文件夹svn,进入svn,在svn下创建文件夹data和conf,data用来建立创建存放版本库newrepos,conf用来存放用户权限控制文件。在创建版本库newrepos时,必须使用命令 #svnadmin create。在完成上述步骤后,进入目录/home/svn/data/newrepos中,查看是否多出文件,多出文件说明版本库创建成功。执行下面的命令继续修改文件#vi /etc/httpd/conf.d/subversion.conf执行上述命令后,对文件进行以下修改:LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so DAV svn SVNParentPath /home/svn/data AuthzSVNAccessFile /home/svn/conf/svn-acl-conf /存储每个项目库可以访问用户的权限信息 AuthType Basic AuthName Subversion repos AuthUserFile /home/svn/conf/svn-auth-conf /存储SVN的访问用户详细信息 Require valid-user以上内容在subversion.conf文件中都有,需要我们消除注释,并按照我们自己SVN库安装环境及文件安装路径的不同对有些内容进行修改。注意:在SVNParentPath一行输入的目录必须是创建的版本库所在目录。修改完成后保存退出。4) 为版本库设置使用用户与权限,并创建用户权限控制文件#htpasswd -cm /home/svn/conf/svn-auth-conf namesvn (注:namesvn是所创建的用户名)New password:Re-type new password:执行上述命令创建版本库用户并设立密码。创建权限控制文件的命令过程如下:#vi /home/svn/conf/svn-acl-conf在文件中输入以下内容后保存退出。newrepos:/namesvn=rw注意:newrepos表示所建立库的名字,namesvn表示个人的用户名,rw表示可读可写,如果具有多个用户,可依次加入 “用户=权限”。此文件可以称作用户的访问权限控制文件与/home/svn/conf/svn-auth-conf文件有一定关系。5) 重启httpd服务,并查看httpd服务是否配置完成#service httpd restart查看方法:在虚拟机的浏览器中输入http:/ip/svn/newrepos(虚拟机IP地址加版本库目录),然后输入刚刚创建的用户名与密码登陆,就会进入所创建的版本库。或者在命令行输入如下命令查看http服务是否配置完成。在这里验证http服务是否配置完成时,会出现一个错误,错误是:输入用户 密码时,进不去版本库会一直提示你输入用户 密码。解决这个错误的方法如下:#vi /etc/selinux/config打开文件,将SELINUX=enforcing修改为SELINUX=disabled,保存退出。输入下列命令#setenforce 0#service httpd restart输入上面命令,重启http服务。或者在命令行输入下面命令来验证:#svn checkout http:/ip/svn/newrepos若出现如下图所示,证明http服务配置完成3 实现https服务1) 安装申请证书所需要的软件包安装openssl-1.0.0-20.el6.i686.rpm安装mod_ssl-2.2.15-15.el6.centos.i686.rpm安装完成后生成文件:/etc/httpd/conf.d/ssl.conf2) 开始进行证书的申请工作#cd /etc/pki/tls/private#openssl genrsa -out ca.key 1024 #openssl req -new -key ca.key -out ca.csr以下为系统提示及输入内容:You are about to be asked to enter information that will be incorporated into your certificate request.What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blankFor some fields there will be a default value,If you enter ., the field will be left blank.-Country Name (2 letter code) XX:输入caState or Province Name (full name) :输入beijingLocality Name (eg, city) Default City:输入beijingOrganization Name (eg, company) Default Company Ltd:输入lianyintongOrganizational Unit Name (eg, section) :输入kaifa2buCommon Name (eg, your name or your servers hostname) :输入svnserverEmail Address :输入Please enter the following extra attributesto be sent with your certificate requestA challenge password :输入gao1355An optional company name :输入lianyintong(以上两步为产生证书的私钥与CSR)#cd /etc/pki/tls/certs#openssl x509 -req -days 365 -in /etc/pki/tls/private/ca.csr -signkey /etc/pki/tls/private/ca.key -out ca.crt(为产生自我签署的金钥)(以上步骤必须在特定文件夹下产生所需的文件,保证输入命令正确,保证产生文件所在文件夹正确,否则后面将发生错误)3) 修改apache ssl文件#vi /etc/httpd/conf.d/ssl.conf进入文件,修改金钥以及金钥凭证正确路径(此路径即为上步生成的两个文件路径,必须保证路径的准确性)SSLCertificateFile /etc/pki/tls/certs/ca.crtSSLCertificateKeyFile /etc/pki/tls/private/ca.key修改完成后保存退出,执行下面命令重启apache#/etc/init.d/httpd restart4) 配置实现https的虚拟主机#vi /etc/httpd/conf/httpd.conf添加如下内容后,保存退出。NameVirtualHost *:443SSLEngine onSSLCertificateFile /etc/pki/tls/certs/ca.crtSSLCertificateKeyFile /etc/pki/tls/private/ca.keyAllowOverride AllDocumentRoot /home/svn/dataServerName localhost注意:SSLCertificateFile与SSLCertificateKeyFile所包含的文件路径需按照个人文件所在路径填写。5) 更改apache的访问端口#vi /etc/httpd/conf/httpd.conf添加如下内容后,保存退出。 ServerAdmin AllowOverride DocumentRoot /var/www/html ServerName localhost ErrorLog logs/svnmanager-localhost-error_log CustomLog logs/svnmanager-localhost-access_log common6) 重启apache并查看https服务是否实现#/etc/init.d/httpd restart验证过程如下:在虚拟机的浏览器中输入https:/localhost/svn/newrepos ,浏览器会提示说你所登录的地址存在不安全因素,不用管它,直接添加信任(此时可以看到刚才申请的服务器证书),输入用户名与密码,登陆版本库。也可以在命令行输入以下命令,查看是否配置成功# svn checkout https:/localhost/svn/newrepos如果出现以下信息则证明配置成功按照要求填写用户名与密码,连接版本库成功。7) 在防火墙中开放SVN端口vi /etc/sysconfig/iptables在COMMIT前加入-A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp -dport 3690 -j ACCEPT重启防火墙:service iptables restart4 安装配置svnmanager(SVN的图形化控制)以root用户进行软件包的安装与部署1) 软件包安装顺序:(安装包在CentOS-6.2盘的Packages目录下均可找到)a) php-5.3.3-3.el6_1.3.i686.rpm依赖文件:php-common-5.3.3-3.el6_1.3.i686.rpm与php-cli-5.3.3-3.el6_1.3.i686.rpmb) php-pear-1.9.4-4.el6.noarch.rpm此包安装成功后将有/usr/bin/pear命令,用于安装VersionControl_SVN-0.3.1.gzc) mysql-5.1.52-1.el6_0.1.i686.rpmd) php-mysql-5.3.3-3.el6_1.3.i686.rpm依赖文件:php-pdo-5.3.3-3.el6_1.3.i686.rpme) php-mbstring-5.3.3-3.el6_1.3.i686.rpm2) 安装svnmanager将svnmanager-1.09.zip解压到/var/www/html/目录下,并重命名为svnmanager#unzip -d /var/www/html/ svnmanager-1.09.zip#cd /var/www/html/#mv svnmanager-1.09 svnmanager3) 安装VersionControl_SVN将XML_Parser-1.3.4.tgz与VersionControl_SVN-0.4.0.tgz复制到/usr/lib/php/pear/目录下#cp XML_Parser-1.3.1.tgz /usr/lib/php/pear/#cp VersionControl_SVN-0.3.1.tgz /usr/lib/php/pear/#cd /usr/lib/php/pear/#pear install -alldeps XML_Parser-1.3.1.tgz VersionControl_SVN-0.3.1.tgz成功后提示:Ignoring installed package pear/XML_ParserIgnoring installed package pear/VersionControl_SVNNothing to install4) 创建svnmanager使用的mysql数据库#service mysqld restart#mysqlmysqlcreate database svn; mysqlgrant all on svn.* to svnmanagerlocalhost identified by 123456;mysql flush privileges;mysqlquit;5) 修改svnmanager配置文件#cd /var/www/html/svnmanager/#mv config.php.linux config.php#vi config.php根据/etc/httpd/conf.d/subversion.conf文件内的SVNParentPath /home/svn/dataAuthzSVNAccessFile /home/svn/conf/svn-acl-confAuthUserFile /home/svn/conf/svn-auth-conf三项内容进行如下修改:/$svn_repos_loc = /var/www/repos;$svn_repos_loc = /home/svn/data; #注意对应SVNParentPath/$svn_passwd_file = /var/www/repos/passwdfile;$svn_passwd_file = /home/svn/conf/svn-auth-conf; #注意对应AuthUserFile/$svn_access_file = /var/www/repos/accessfile;$svn_access_file = /home/svn/conf/svn-acl-conf; #注意对应AuthzSVNAccessFile/$dsn = mysqli:/username:passwordhostname/databasename;$dsn = mysqli:/svnmanager:123456localhost/svn; #连接mysql SVN数据库 用户口令$admin_name = admin; #初始用户名$admin_temp_password = admin; #初始密码6) 验证重启apache,然后在浏览器里输入http:/IP/svnmanager;第一次会用提示All tables are missing.Creating requried tablesPlease reload page!刷新即可如果出不来东西,显示白屏,则是因为PHP页面报错,但是错误信息被屏蔽了;可以修改/etc/php.ini查找error_reporting=E_ERROR改成E_ALL,查找display_errors=Off改成On;刷新后页面将显示错误原因。7) 初始化SVN管理员第一次登录用户与密码:admin/admin。创建管理员用户后该账号将失效。如果“增加”与“修改”用户时总提示邮件地址无效,则通过修改PHP文件解决:#cd /var/www/html/svnmanager/UserModule/#vi AddPage.tpl#vi EditPage.tpl注释对邮件地址验证的行:!- Invalid e-mail address! -8) 常见错误a) Fatal error: Class MB_internal_encoding not found in /var/www/html/svnmanager/svnmanager/UserModule/ DataModule.php on line 20解决方法:安装php-mbstring-5.3.3-3.el6_1.3.i686.rpmb) Fatal Error2 fopen(/home/svn/conf/svn-acl-conf): failed to open stream: Permission denied (line 207 in file /var/www/html/svnmanager/svnmanager/library/class.accessfile.php).解决方法:将目录/home/svn的拥有者修改为apache用户与apache用户组#chown -R apache:apache /home/svnc) Fatal error: Class PEAR_ErrorStack not found in /var/www/html/svnmanager/svnmanager/RepositoryModule/UserPrivilegesEditPage.php on line 203解决方法: 将VersionControl_SVN所使用的0.5.1版本卸掉,改用0.4.0版本#cd /usr/lib/php/pear/#pear uninstall VersionControl_SVN-0.5.1#pear install VersionControl_SVN-0.4.0.tgz9) 汉化把汉化包里的文件替换现有/var/www/html/svnmanager里的文件,之后还有几步要做:a) 更改/etc/php.ini文件设置default_charset=gb2312或default_charset=gbkb) 更改/etc/httpd/conf/httpd.conf文件设置AddDefaultCharset GB2312或AddDefaultCharset GBKc) 重启httpd#service httpd restart5 SVN的备份与还原5.1 SVN备份简介svn备份一般采用三种方式:1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 注意:svn备份不宜采用普通的文件拷贝方式(除非你备份的时候将库暂停),如copy命令、rsync命令。1) svnadmin dump语法:svnadmin(或svnadmin路径) dump 版本库路径及名称 -revision 上次导出的版本号:到本次要导出到的版本号 -incremental 导出的命名选项说明:-incremental为增量备份选项,若去掉此选项则为全量备份还原备份:svnadmin load 要恢复的版本库路径及名称 $LogFilefiecho SVN备份开始于:$(date +%y-%m-%d %H:%M:%S) $LogFileecho - $LogFileecho 项目文件备份指定目录为:$BakDir/$DATE $LogFilecd $BakDir#检查备份项目列表是否存在if -f $ProjectLst then PROJECTLIST=cat $ProjectLstelse echo 备份项目列表文件“$ProjectLst”不存在! $LogFile echo - $LogFile echo SVN备份结束于:$(date +%y-%m-%d %H:%M:%S) $LogFile echo $LogFile exitfi#创建项目文件的备份目录if -d $BakDir/$DATE then echo 备份目录“$BakDir/$DATE”已存在! $LogFileelse mkdir -p $BakDir/$DATE echo 备份目录“$BakDir/$DATE”创建成功! $LogFileficd $BakDir/$DATEfor project in $PROJECTLISTdo projectdata=$SvnDir/$project destdir=$BakDir/$DATE/$DATE.$project destdir=$BakDir/$DATE/$project dumpfile=$DATE.$project.tgz #检查备份文件是否存在,不存在则进行备份 if -f $BakDir/$DATE/$dumpfile then echo 项目$project的备份文件已存在! $LogFile else $SvnAdminPath hotcopy $projectdata $destdir -clean-logs tar -zcPf $dumpfile $destdir rm -rf $destdir echo 项目$project成功备份到:$dumpfile $LogFile fi #删除上星期的备份 oldname=$(date +%Y%m%d -date=7 days ago).$project.tgz oldpath=$BakDir/$(date +%Y%m%d -date=7 days ago) oldfile=$oldpath/$oldname if -f $oldfile then rm -rf $oldfile $LogFile 2&1 echo 属于项目$project的早期备份文件$oldname成功删除! $LogFile else echo 未找到属于项目$project的早期备份文件$oldname! $LogFile fi #备份目录若为空,则删除 if -d $oldpath then if -z $(ls $oldpath) then rm -rf $oldpath $LogFile 2&1 if fi echo $LogFiledoneecho apache和svn配置文件备份指定目录为:$BakDir/$DATE $LogFile#创建配置文件的备份目录if -d $ConfBak/$DATE then echo 备份目录“$ConfBak/$DATE”已存在! $LogFileelse mkdir -p $ConfBak/$DATE echo 备份目录“$ConfBak/$DATE”创建成功! $LogFileficd $ConfBak/$DATEapachefile=$DATE.apachebak.tgzsvnconffile=$DATE.svnconfbak.tgz#备份apache的配置文件if -f $ConfBak/$DATE/$apachefile then echo apache的配置文件备份$apachefile已存在! $LogFileelse service httpd stop #停止apache的服务 tar -zcPf $apachefile $ApachePath/conf $ApachePath/conf.d service httpd start #开启apache的服务 echo apache的配置文件成功备份到:$apachefile $LogFilefi#备份SVN权限控制文件if -f $ConfBak/$DATE/$svnconffile then echo SVN权限控制文件备份$svnconffile已存在! $LogFileelse tar -zcPf $svnconffile $SvnConfPath echo SVN权限控制文件成功备份到:$svnconffile $LogFilefiecho - $LogFile echo SVN备份结束于:$(date +%y-%m-%d %H:%M:%S) $LogFileecho $LogFile2) 计划任务将备份脚本文件backupsvn.sh加入到linux的计划任务中:#chmod 755 /svnbak/backupsvn.sh#vi /etc/crontab加入以下内容保存,系统将在每周5的上午8:00执行备份脚本(周日=0,周一=1周六=6)00 6 * * 5 root /svnbak/backupsvn.sh3) FTP自动备份假如你想把svn备份到另外一台电脑上的话,可以在上面的脚本中再加入下面这段代码来利用FTP自动备份
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 清华物理专业试题及答案
- 储运专业试题题库及答案
- 材料化学专业试题及答案
- 财会专业面试题及答案
- 药店专业试题及答案
- JavaEE轻量级框架Struts2 spring Hibernate整合开发 第1章Spring的基本用法课件
- 江苏省如皋市外国语学校2025-2026学年九年级上学期9月检测语文试题(无答案)
- 药学专业期末试题及答案
- 广西壮族自治区来宾市武宣县2024-2025学年八年级上学期12月月考生物试题(含答案)
- 梅州灯具施工方案公司
- 新疆五彩湾温泉二期建设项目可行性研究报告
- 现代温室附属设施课件
- 基于Java的网上蛋糕预订销售系统的设计与实现
- 成人高考专升本医学综合考试真题及答案
- 可复制的领导力心得
- 《小猪变形记》一年级
- 抗菌药物临床应用指导原则
- MirrorView切换手册模板
- 急救车必备药品和物品 急救车物品药品管理
- GB/T 3253.8-2009锑及三氧化二锑化学分析方法三氧化二锑量的测定碘量法
- GB/T 24720-2009交通锥
评论
0/150
提交评论