SVN與Apache HTTP服務器的整合安裝

1.  環境:

a)         操作系統:RedHat AS5

b)        httpapache httpd-2.2.16,假設httpd安裝在/opt/apache2目錄中

c)         svnsubversion-1.6.0-rc2,假設svn安裝在/opt/subversion目錄中

2.  安裝apache httpd

#./configure --enable-dav --enable-so --prefix=/opt/apache2/

#./make clean && make && make install

3.  安裝svn

#./configure --prefix=/opt/subversion --with-apxs=/opt/apache2/bin/apxs --with-apr=/opt/apache2 --with-apr-util=/opt/apache2 --with-ssl --enable-maintainer-mode

#./make clean && make && make install

4.  創建svn倉庫

#/opt/subversion/bin/svnadmin create /var/svn/repos

#ls –l /var/svn/repos

可以看到創建了一些SVN的目錄和文件,則表示安裝SVN成功。

5.  導入需要進行版本控制的項目目錄

#/opt/subversion/bin/svn import /tmp/myproject file:///var/svn/repos/myproject -m "initial

import"

Adding /tmp/myproject/branches

Adding /tmp/myproject/tags

Adding /tmp/myproject/trunk

Committed revision 1.

其中/tmp/myproject是需要導入的項目目錄,按照約定,項目中一般需要創建branchestagstrunk目錄

6.  SVN權限控制

a)         創建用戶名和密碼文件:

#/opt/apache2/bin/htpasswd –c / var/svn/repos/authfile username

然後提示輸入密碼和確認密碼結束密碼文件的創建,如果需要追加用戶,則不需要-c參數。

b)        創建訪問控制文件:

#vi /var/svn/repos/authz.conf

輸入如下內容:

[storevm:/]

xiangqing.tan = rw

[/]

* = r

#[groups]

#svn1-developers = wooin, bao

#svn2-developers = wooin

#[svn1:/]

#@svn1-developers = rw

註釋:

[storevm:/]

xiangqing.tan = rw

表示設置storevm項目的訪問控制,其中xiangqing.tan用戶對於該項目擁有讀寫權限。

[/]

* = r

表示所有用戶對所有倉庫中的項目擁有讀權限。

#[groups]

#svn1-developers = wooin, bao

#svn2-developers = wooin

創建用戶組,創建了2個用戶組,並指定了組中的成員。

#[svn1:/]

#@svn1-developers = rw

設置用戶組的訪問控制權限。svn1-developers組對svn1項目擁有讀寫權限。

7.  Apache httpSVN相關設置

httpd.conf文件中加入如下內容:

# Needed to do Subversion Apache server.

LoadModule dav_svn_module     modules/mod_dav_svn.so

 

# Only needed if you decide to do "per-directory" access control.

LoadModule authz_svn_module   modules/mod_authz_svn.so

 

#

# Example location directive.

#

 

<Location /svn>

   DAV svn

   SVNPath /var/svn/repos/

#

#   # Limit write permission to list of valid users.

#   <LimitExcept GET PROPFIND OPTIONS REPORT>

#      # Require SSL connection for password protection.

#      # SSLRequireSSL

#

      AuthzSVNAccessFile /var/svn/repos/authz.conf

      AuthType Basic

      AuthName "Authorization Realm"

      AuthUserFile /var/svn/repos/authfile

      Require valid-user

#   </LimitExcept>

</Location>

註釋:

<Location /svn>設置了瀏覽器訪問的上下文路徑,例如可以通過http://localhost/svn訪問SVN倉庫。

SVNPath /var/svn/repos/設置了SVN的倉庫路徑

AuthzSVNAccessFile /var/svn/repos/authz.conf設置了訪問控制權限文件的路徑

AuthUserFile /var/svn/repos/authfile設置了密碼文件的路徑

8.  啓動

#/opt/apache2/bin/apachectl –k start

9.  如果安裝都成功了,會展現如下的界面:

 

由於我們給SVN的訪問設置了用戶名和密碼,所以要求我們輸入用戶名和密碼。輸入成功後會顯示如下的界面

 

點擊鏈接,我們就能看到我們導入的項目目錄了

 

 

至此所有安裝宣告全部成功!

附件:svn的完整源代碼安裝包,包含了所有svn安裝時需要的依賴(apache httpd不包含在內,需要另行安裝)。如有需要請email我。 [email protected]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章