新聞中心
本節(jié)簡(jiǎn)單討論一下利用SVN更新網(wǎng)站,和大家分享一下,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。如果你有一個(gè)假設(shè)在公網(wǎng)上的SVN服務(wù)器,而你的網(wǎng)站所在的主機(jī)允許你使用SVN客戶端,并且開(kāi)放了php的exec函數(shù),那么你有福了,你可以利用SVN作為中轉(zhuǎn),更新你的網(wǎng)站程序。

創(chuàng)新互聯(lián)公司長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鄞州企業(yè)提供專(zhuān)業(yè)的網(wǎng)站制作、網(wǎng)站建設(shè),鄞州網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
首先,也是前提,就是你的網(wǎng)站程序是用SVN管理的,那么只要你的網(wǎng)站主機(jī)能夠訪問(wèn)SVN,就能夠使用SVN的update功能來(lái)更新程序。
SVN更新網(wǎng)站準(zhǔn)備工作一:將網(wǎng)站程序加上svn的控制標(biāo)記,由于SVN的控制信息都存在程序所在目錄的.svn子目錄中,所以需要找一個(gè)空目錄,并且將網(wǎng)站現(xiàn)有程序checkout到這個(gè)目錄里面來(lái),注意是checkout而不是export,因?yàn)榻酉聛?lái)要將最新的網(wǎng)站程序連同他里面包含的很多個(gè).svn目錄一同上傳到服務(wù)器上去。為了不讓.svn目錄泄露機(jī)密,要在.htaccess文件或者是httpd.conf中設(shè)定如下規(guī)則,禁止對(duì).svn目錄的訪問(wèn)。
OrderAllow,Deny
Denyfromall
SVN更新網(wǎng)站準(zhǔn)備工作二:作一段小程序,調(diào)用服務(wù)器上的svn命令行命令,update網(wǎng)站程序,下面是一個(gè)寫(xiě)好了的簡(jiǎn)單例子。
- //setupupdatetargetpath
- $target_ar[’fwolf’]=‘d:fwolf’;//setupcommandline
- $svn_cmd1=‘d:serversvnbinsvn.exeupdate‘;
- $svn_cmd2=‘–usernameupdatebot–passwordxxxxxx–no-auth-cache’;
- //outputhtmlstring
- $html=”;
- //recievegetparameter
- $target=isset($_GET[’target’])?$_GET[’target’]:”;
- if(empty($target)||!isset($target_ar[$target]))
- {$html=‘Targetdoesnotcorrect.’;}
- else
- {//executesvnupdatecommand
- $cmd=$svn_cmd1.$target_ar[$target].$svn_cmd2;
- $ar=array();
- $status=0;
- exec($cmd,$ar,$status);
- for($i=0;$i $ar[$i]=htmlspecialchars($ar[$i]);
- $html.=‘Status:‘.$status.“
- rn”;
- $html.=implode(’
- ’.“rn”,$ar);
- }
- echo$html;
把這個(gè)程序放到服務(wù)器上能夠訪問(wèn)到的地方,也可以在此基礎(chǔ)上加上一些訪問(wèn)限制,那么只要訪問(wèn)這個(gè)程序/頁(yè)面,服務(wù)器就會(huì)自動(dòng)更新你的網(wǎng)站啦。
Status:0
DH:cvsworksvntestupdate_from_svn.php
Updatedtorevision44.這樣,在利用SVN很好的管理網(wǎng)站程序的基礎(chǔ)上,還實(shí)現(xiàn)了服務(wù)器程序的很方便的更新,一舉兩得!尤其是在程序上傳不是十分方便的場(chǎng)合,用起來(lái)就更舒服了,我就是在更換了一個(gè)劣質(zhì)防火墻,ftp無(wú)法正常使用的情況下想出這個(gè)怪招兒的:-)。
Update@2007-07-31
SVN更新網(wǎng)站時(shí)如果在windows主機(jī)上使用本方法,而svn服務(wù)器是采用了ssl的https://…地址,那么會(huì)遇到一點(diǎn)小麻煩,就是在執(zhí)行svnupdate的時(shí)候,由于使用的是web的用戶,在出現(xiàn)確認(rèn)證書(shū)的提示信息時(shí),用戶是無(wú)法輸入的:
Errorvalidatingservercertificatefor'https://20070731.fwolf.com':-Thecertificateisnotissuedbyatrustedauthority.Usethefingerprinttovalidatethecertificatemanually!Certificateinformation:-Hostname:20070731.fwolf.com-Valid:fromJul3106:49:532007GMTuntilJul2806:49:532017GMT-Issuer:Fwolf,US-Fingerprint:38:43:0b:29:75:1t:ba:d8:29:8f:94:9a:10:42:a0:fe:ae:93:4d:91(R)eject,accept(t)emporarilyoraccept(p)ermanently?
這時(shí)就只能用變通的方法了,首先在dos方式中使用svnup,svn會(huì)自動(dòng)緩存身份驗(yàn)證以及ssl確認(rèn)信息,這些信息保存在C:DocumentsandSettingsAdministratorApplicationDataSubversion目錄下,然后把這個(gè)目錄整體拷貝到C:DocumentsandSettingsDefaultUserApplicationDataSubversion就可以了,測(cè)試環(huán)境windows2003,并且試過(guò)復(fù)制到AllUsers的對(duì)應(yīng)目錄無(wú)效。
另外修改配置文件servers,添加ssl-trust-default-ca=yes的方式在windows下好像沒(méi)有作用。
ThisentrywaspostedonThursday,January19th,2006at2:10:16andisfiledunderInternet,Subversion.YoucanfollowanyresponsestothisentrythroughtheRSS2.0。本節(jié)SVN更新網(wǎng)站介紹完畢。
【編輯推薦】
- Linux下不常用的SVN 命令大揭秘
- Subversion和TortoiseSVN如何在Windows下進(jìn)行構(gòu)建SVN版本控制
- 最新MPlayerSVN漢化精簡(jiǎn)版上市
- SVN使用教程簡(jiǎn)單配置篇詳解
- 在線指導(dǎo):Windows系統(tǒng)服務(wù)自動(dòng)運(yùn)行對(duì)于SVN如何實(shí)現(xiàn)
當(dāng)前標(biāo)題:如何利用SVN更新網(wǎng)站全程報(bào)道
本文URL:http://www.dlmjj.cn/article/dphdcpe.html


咨詢(xún)
建站咨詢(xún)
