天天看點

svn+apache windows和linux安裝筆記

[size=medium][color=green]一、window的svn倉庫安裝配置

前段時間因為一些情況,要将項目移到window上去,是以裝了一個window的svn服務.這裡講的是使用http協定的svn,window下比較省事一點,方法講二種:一是下載下傳到windows下的安裝包:Subversion,tortoiseSVN,apach,下載下傳位址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91,

http://www.apachelounge.com/download/,安裝方法跟linux下就差不多。但是這個方法有一點不好的就是apache的版本和subversion的版本有點問題,apache的某個版本不定支援某個版本svnsubversion,我在這塊是吃過虧的。是以第二種方法,比較懶的直接在http://www.collab.net/downloads/subversion/下載下傳一個集合subversion和apache的安裝包:CollabNetSubversion-server-1.5.1-5.win32.exe,輕按兩下就替你全部裝好了。現在的版本應該是1.5.4了,反正比較省事省力了。www.collab.net這個網站也有提供linux、solaris的內建安裝包,我試過linux的,沒裝上,還是按原始的安裝方法裝上去的。

二、linux下的svn倉庫安裝配置

1、下載下傳所需要的安裝包:httpd-2.2.9.tar.gz,subversion-1.4.3.tar.bz2,subversion-deps-1.4.3.tar.bz2

下載下傳路徑:http://subversion.tigris.org/,http://httpd.apache.org/

2、安裝Apache

# tar zxf httpd-2.2.9.tar.gz

# ./configure --prefix=/opt/apache --enable-dav --enable-so && make && make install

這裡的/opt/apache替成你自己的安裝目錄。

如果系統安裝時沒有預設安裝(Berkeley DB--svn的資料庫),需要手動安裝一下

a.解壓安裝檔案.

unzip db-4.3.21.NC.zip

b.編譯.

進入build_unix目錄

cd build_unix/

編譯.

../dist/configure --prefix=/opt/Berkeley&&make&&make install

完成

3、安裝Subversion

SVN的安裝一定要注意:svn依賴的APR版本要正确。如果Apache為2.0.x,對應的APR版本應為0.9.x;Apache為2.2.x,對應的APR版本應為1.2.x。 由于subversion-deps包裡的APR是0.9.x的,是以編譯svn時要删除從deps裡解壓出來的apr, apr-util,改而使用apache 2.2裡提供的。

指令如下:

# tar xfz subversion-1.4.3.tar.bz2

# tar xfz subversion-deps-1.4.3.tar.bz2

# ./configure --prefix=/opt/subversion --with-apxs=/opt/apache/bin/apxs

--with-apr=/home/tang/httpd-2.2.9/srclib/apr

--with-apr-util=/home/tang/httpd-2.2.9/srclib/apr-util

&& make && make install

注意這裡的三個路徑一定要替換成你自己包的路徑,下面的apr的路徑/home/tang/指到apache的源安裝檔案路徑。

注:64位,不帶apache安裝

apr包安裝

#yum search apr

#yum -y install apr-util apr-util-devel apr apr-devel

在subversion安裝之前bdb确認已安裝成功

編譯指令

#./configure --bindir=/usr/bin/ LDFLAGS="-L/usr/lib64 -L/lib64" --prefix=/opt/subversion && make && make install

安裝完成後,檢視是否存在檔案$APACHE_HOME/modules/mod_dav_svn.so(預設 /usr/local/apache2/modules/mod_dav_svn.so)。另外,如果該機器上以前是裝過舊版本的SVN,要把 "/usr/local/lib/libsvn*"檔案都删除。

4、在apache中配置svn

建立SVN庫:

cd /opt/subversion

svnadmin create /opt/svnroot

說明:預設版本為0,指令可以使用—fs-type參數指定倉庫背景的資料庫類型,預設為fsfs,可以修改為dbd,一般使用預設的fsfs即可,差别是如果應用了nfs的話會有檔案讀寫的影響,一般不會涉及到。

可以用svnserve –d –r /path/to/repos啟動服務,預設隻支援以svn協定通路,可以用來測試是否初始化成功,/opt/svnroot表示倉庫的路徑。

建立後需要改變一下svnroot下db和dav的權限。

# chmod 777 svnroot/db

# chmod 777 svnroot/dav

# chown -R apache:apache svnroot

在Apache 的配置檔案httpd.conf中加入以下代碼,重新開機apache,便可以通過http://192.168.0.1/svn(如果預設端口是80可如些通路,如果有需要可以修改apache的端口号),通過AuthzSVNAccessFile和AuthUserFile指令分别配置SVN使用者的使用者名和密碼檔案。

httpd.conf檔案添加:

<location /svn>

DAV svn

SVNParentPath /opt/svnroot

AuthzSVNAccessFile /opt/svnroot/conf/accessfile

Require valid-user

AuthType Basic

AuthName "Subversion System"

AuthUserFile /opt/svnroot/conf/passwdfile

</location>

需要注意的是SVNParentPath是對多個項目進行管理,設定單個項目管理使用SVNPath就可以了。在多個項目配置環境中通路路徑後面必須接項目名稱例:http://svnserverip:port/svn/projectname,否則将會出現錯誤。

建立檔案/opt/svnroot/conf/accessfile:

[groups]

user = admin

anonymous = guest

[/]

* = r

@user = rw

@anonymous = r

使用htpasswd指令建立/home/svn/svnroot/conf/passwdfile檔案,設定密碼

注意選項中有c時會建立新檔案,如果原來已存在同名檔案,會被覆寫:

# htpasswd -cm /home/svn/svnroot/conf/passwdfile admin

如果 passwdfile檔案已存在,運作下面的指令追加使用者

htpasswd –m svn-auth-file username2為username2

系統會提示輸入兩遍密碼,設定成功後重裝apache新帳号生效。

5、導入初始項目目錄結構

# svn import -m "項目說明" /opt/project1

項目導入到svn倉庫以後,項目将由svn倉庫接管,可以将/opt/project1檔案備份後删除,然後從svn倉庫中将project1 checout出來,例:

# svn checkout http://svnserverip:port/svn/project1

一般svn倉庫中項目的布局如下:

project1/

trunk/

tags/

branches/

project2/

trunk/

tags/

branches/

每個項目一個目錄,下面的trunk目錄為項目主幹版本,tags為打了标簽的某個版本,一般隻讀,branches為分支版本,svn對tags的處理是和branches完全一樣的,都是主幹版本的某個特定版本的一個拷貝。

參參考資料

http://www.iusesvn.com/subversion/svnbook/1.1/index.html

http://doc.owind.org/TortoiseSVNBook/index.html

http://www.diybl.com/course/3_program/rg/2007104/76274.html

http://www.subversion.org.cn/bbs/viewthread.php?tid=1706&extra=page%3D1[/color][/size]

繼續閱讀