Subversion的Apache設定

當我們決定把主要的原始碼版本管理系統由CVS轉換成Subversion時,希望能達成在公司VPN以外的區域也能存取的目標、能使用AD帳號(Active Directory),也必須能針對不同專案來設定不同的使用者的使用權限。這幾個目標透過Apache HTTP Server和Subversion的整合就輕易的達成了。本文描述整合上的設定。

功能目標

  1. 使用AD帳號:http://你的Subversion主機/subversion_ad

    在台灣的使用者都有建立AD帳號,在VPN裡直接用AD帳號即能存取,在VPN外則必須用 網址\帳號 的格式才能正確登入

  2. 不使用AD帳號而使用Apache HTTP Server的帳號:http://你的Subversion主機/subversion_apache

    出差在外時可透過此網址來存取

Apache設定

在Apache的設定檔 httpd.conf 裡要有以上兩個網址的設定:

網址 httpd.conf設定 說明
/svn_ad /svn_ad>

DAV svn

SVNPath D:\repo

AuthType SSPI

AuthName "Subversion repository"

Require valid-user

SSPIAuth On #turn that authentication on

SSPIAuthoritative On #turn that authentication on

SSPIDomain

SSPIOfferBasic On #let non-IE clients authenticate

AuthzSVNAccessFile "C:\Program Files\Apache Group\Apache2\passwd\svnaccess.ad"

  1. D:repo是檔案庫的根目錄
  2. 帳號密碼檔是password
  3. 權限設定檔是svnaccess.ad
/svn_apache /svn_apache>

DAV svn

SVNPath D:\repo

AuthType Basic

AuthName "Subversion repository"

AuthUserFile "C:\Program Files\Apache Group\Apache2\passwd\password"

AuthzSVNAccessFile "C:\Program Files\Apache Group\Apache2\passwdsvnaccess.apache"

Require valid-user

SVNAutoversioning on

  1. D:repo是檔案庫的根目錄
  2. 帳號密碼檔是password
  3. 權限設定檔是svnaccess.apache

權限設定

權限設定檔 (C:\Program Files\Apache Group\Apache2\passwdsvnaccess.apachesvnaccess.ad) 的基本格式是:

[groups]

群組名=使用者[,使用者...]

設定群組,一般我們皆以 g_ 開頭,以和使用者帳號做區別;如:

g_admin = AD裡的Administrators群組

g_project1 = 網域\user1, 網域\user2

[/]

* = 權限

使用者 = 權限

@群組 = 權限

設定檔案庫根目錄的存取權限;權限有空白、讀(r)和寫(w)三大類。使用者用星號表示對象是所有的使用者,群組必須以@開頭。 

注意:使用Trac時若Trac的使用者對根目錄沒有讀的權限時,會無法順利瀏覽源碼(Browse Source)。

[/檔案庫某個目錄/子目錄]

* = 權限

使用者 = 權限

@群組 = 權限

可針對任何一個資料夾做權限設定

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *