SVN同步測試服務器創(chuàng)建方法大揭秘
本節(jié)簡單向大家描述一下如何建立一個SVN同步測試服務器,這是在學習SVN過程中可能會遇到的問題,這里我發(fā)表一下個人理解,和大家討論討論,歡迎大家一起來學習SVN同步測試服務器創(chuàng)建方法。
很多人開始使用SVN之后,就想著,要建立一個測試用的服務器,不需要把文件update到本地再進行測試。這個在我以前的一篇文章中寫過,但當時理解也不深,也寫得很含糊。現(xiàn)在連自己都看不懂了。
1.SVN同步測試服務器創(chuàng)建原理:基于SVN的鉤子,即hook。在SVN執(zhí)行一個操作時,那會相應的首先去調(diào)用相關的鉤子程序(如果存在的話)。那么實現(xiàn)一個同步的測試服務器,我們只需要在一個用戶執(zhí)行完畢一個commit操作之后,讓鉤子程序去自動更新測試服務器的文件即可。通過這個思路,我們需要作的就是建立一個post-commit的鉤子。
鉤子文件在你的svn源目錄下,即存放SVN版本數(shù)據(jù)的文件夾。以前面我寫的兩篇文章中的情況為例,
文一(win)的鉤子文件應該在E:\svn2\hooks
文二(Linux)的鉤子文件應該在/var/svn/hooks
文件夾內(nèi)已經(jīng)存在有一些.tmpl文件,這些只是一些模板(TeMPLate)或者說是示例文件。它們不會被執(zhí)行。
先以linux為例,來講講如何構建一個同步的測試服務器127.0.0.2(在Ubuntu6.10,apache2.0.55,SVN1.3.1下調(diào)試通過。2007/1/18)
我們假設你已經(jīng)建立好了一個apache+SVN的環(huán)境。
0.準備工作
為SVN同步測試服務器建立訪問SVN版本的權限,請參考以前的文章
viewsourceprint?1
2sudohtpasswd2/etc/apache2/dav_svn.passwdserver
1.使用checkout建立一個工作復本
viewsourceprint?1
2cd/var/www
3sudomkdir/var/www/127.0.0.2#建立SVN同步測試服務器站點根目錄
4sudochownwww-data.www-data127.0.0.2#更改用戶所有者
5sudosuwww-data#切換到www-data,需要使用sudo,因為超級權限可以使用任何用戶,而不需要密碼,執(zhí)行后會發(fā)現(xiàn)命令提示符可能會有變化
6svncheckouthttp://127.0.0.10/lab.luochunhui.com/trunk127.0.0.2#取出SVN上的文件,可能需要密碼
7#請保證執(zhí)行checkout語句的用戶是www-data,否則在以后鉤子調(diào)用update時會出現(xiàn)無法創(chuàng)建或修改文件的錯誤
8exit#退出www-data用戶
說明:我們必須把/var/www/127.0.0.2目錄的所有者設置成apache的運行者(www-data),他必須對文件夾具有完全的可讀寫操作權限。我使用
sudochownwww-datawww
sudosuwww-data
這樣的方式來避免把/var/www/127.0.0.2目錄設置成777的權限。
另外可以執(zhí)行下面的代碼實現(xiàn)相同的功能:
viewsourceprint?1
2cd/var/www
3sudomkdir/var/www/127.0.0.2#建立SVN同步測試服務器站點根目錄
4sudosvncheckouthttp://127.0.0.10/lab.luochunhui.com/trunk127.0.0.2#取出SVN上的文件,可能需要密碼
5sudochown-Rwww-data.www-data127.0.0.2/#把文件用戶修改成apache的執(zhí)行用戶
之后使用
viewsourceprint?1
2ls-Al127.0.0.2
應該可以得到
drwxr-xr-x7www-datawww-data40962007-01-1710:21.svn
...一些其他的文件。創(chuàng)建SVN同步測試服務器時還要設置Apache。
2.設置apache,把你需要的域名指向這個文件夾。
viewsourceprint?1
2sudogedit/etc/apache2/sites-available/127.0.0.2
輸入以下文字:
- 01viewsourceprint?01<BR>
- 02<VIRTUALHOST127.0.0.2><BR>
- 03ServerAdminrollenc@localhost.com<BR>
- 04ServerNamelocalhost<BR>
- 05DocumentRoot/var/www/127.0.0.2<BR>
- 06<DIRECTORY/><BR>
- 07OptionsFollowSymLinks<BR>
- 08AllowOverrideNone<BR>
- 09< span>DIRECTORY><BR>
- 10<DIRECTORY127.0.0.2wwwvar><BR>
- 11OptionsIndexesFollowSymLinksMultiViews<BR>
- 12AllowOverrideNone<BR>
- 13Orderallow,deny<BR>
- 14allowfromall<BR>
- 15#Uncommentthisdirectiveisyouwanttoseeapache2's<BR>
- 16#defaltstartpage(in/apache2-default)whenyougoto/<BR>
- 17#RedirectMatch^/$/apache2-default/<BR>
- 18< span>DIRECTORY><BR>
- 19<BR>
- 20ErrorLog/var/log/apache2/127.0.0.2_error.log<BR>
- 21<BR>
- 22#Possiblevaluesinclude:debug,info,notice,warn,error,crit,<BR>
- 23#alert,emerg.<BR>
- 24LogLevelwarn<BR>
- 25<BR>
- 26CustomLog/var/log/apache2/127.0.0.2_access.logcombined<BR>
- 27ServerSignatureOn<BR>
- 28< span>VIRTUALHOST><BR>
啟用他
viewsourceprint?1
2sudoln-s/etc/apache2/sites-available/127.0.0.2/etc/apache2/sites-enabled/127.0.0.2
重啟apache。
viewsourceprint?1
2sudoapache2-krestart
在瀏覽器上使用http://127.0.0.2可以瀏覽到你SVN上***版本。請期待下節(jié)關于SVN同步測試服務器創(chuàng)建介紹。
【編輯推薦】