64位FreeBSD 8.1下搭建SVN服務器
原創【51CTO獨家特稿】本文一步一步介紹了FreeBSD 8.1下SVN服務器的配置。SVN服務器是版本控制系統(可以看作是CVS的升級),一般用于開發環境,用于多人協同開發項目的源代碼管理。由于SVN服務器使用方便,它現在是版本控制系統的主流,尤其適用于集中式版本管理。當然Git也是后起之秀,它適用于更大的項目,多用于分布式環境。目前我們也在嘗試進行Git的布署工作,不過本文還是先介紹SVN。有關CVS的配置方面,可以參考之前另一篇FreeBSD 8.1下配置CVS服務器的文章。
作者簡介:余洪春(博客),網名撫琴煮酒,英文名Andrew.Yu,武漢某外企高級Linux/Unix系統管理員、項目實施工程師,紅帽RHCE講師,擅長負載均衡高可用和中小型證券類和商務網站架構,目前關注網站架構研究及網絡安全。
安裝前的準備工作
系統是64位的FreeBSD 8.1,相關優化及配置我這里也不多費筆墨了(具體可以參考51CTO的FreeBSD配置與優化專題)。將ports配置好,由于SVN可以獨立運行,也可以以Apache附加的形式運行;我這里為了權限控制的方便,采用的是apache方式,所以這里第一步是配置Apache,注意FreeBSD 8.1第一次運行apache22還有點問題,下面會詳細解釋。
由于是內網環境,我這里直接以我的用戶andrewy遠程登陸,然后sudo su - 切換到root權限下操作;這個不是太推薦哈。
一、安裝apache22
ports及vim優化是前提和基礎,我這里不浪費時間解釋。有興趣的請搜索我以前的文章FreeBSD的優化策略。這里說下FreeBSD 8.1下Apache22的安裝:
cd /usr/ports/www/apache22 make WITH_BERKELEYDB=db4 install clean
增加的選項就是為了subversion得用的一個庫【有很多的默認配置信息,選擇默認就可以了】
安裝完畢后,
echo 'apache22_enable="YES" ' > /etc/rc.conf
習慣了sed的流編輯,不想用vim打開編輯,偷懶操作,呵呵。
FreeBSD8.1下啟動apache22有個小bug,如果想像FreeBSD8下安裝apache22一樣直接就可以啟動是不可能的。
解決方法:
vim /usr/local/etc/apache22/httpd.conf
用#號注釋掉這一句
LoadModule unique_id_module libexec/apache22/mod_unique_id.so
記得修改ServerName 127.0.0.1:80,不然啟動時apache22會提示。
然后/usr/local/etc/rc.d/apache22 start沒問題,可以用sockstat -4l驗證。
二、用ports安裝SVN
安裝subversion
#cd /usr/ports/devel/subversion/ #make WITH_MOD_DAV_SVN=yes install clean
我這里由于是以Apache22的方式啟動SVN,所以apache的配置文件后需要增加如下代碼
#vim /usr/local/etc/apache22/httpd.conf <Location /svn> DAV svn SVNParentPath /data/svn AuthzSVNAccessFile /data/svn/svn-acl-conf AuthType Basic
AuthName "Ewizweb SVN Server"
AuthUserFile /data/svn/svn-auth-file
Require valid-user
</Location>
mkdir -p /data/svn
chmod -R 755 /data/svn
三、配置SVN的用戶acl及用戶權限文件
下面是控制用戶的acl文件
vim /data/svn/svn-acl-conf [groups] bolan_dev = web,andrwy,cc test=test [produce:/] @bolan_dev= rw @test=r [rest:/] @bolan_dev = rw @test=r
此文件可以控制你的內網不同的開發小組,只允許他們訪問各自的project;有些特殊用戶(比如Director,可以讓他看代碼)上面的文件很簡單,相信大家一看就明白了。
下面則是SVN的用戶驗證文件,它是用Apache的htpasswd加密,這個過程大家玩Apache就應該很熟悉了。
Apache和SVN安裝完后記得rehash,不然很多命令都看不到。
#htpasswd -c /etc/svn-auth-file andrewy
第一次添加用戶時需要C參數,以后就不需要了。
添加用戶
#htpaawd /etc/svn-auth-file test
正常啟動SVN后就可以在windows下用TortoiseSVN正常連接SVN服務器,checkout及commit了,安裝完TortoiseSVN后它會自動跟你的IE集成,你在你的工作目錄新建一個目錄—例如My_project,然后點右鍵“SVN checkout”,輸入正確的http地址即可,如下圖:
總體感覺就是在FreeBSD下配置項目管理軟件確實比Linux下方便多了,希望上面的文章對大家工作有所幫助。
【51CTO.com獨家特稿,轉載請注明原文作者和出處。】
【編輯推薦】