windows下Apache2.2.9+Subversion1.5.5(for Apache2.2.X)的配置與使用權限設定

來源:互聯網
上載者:User

1.安裝Apache2.2.9(http://httpd.apache.org/download.cgi

選擇:

  • Win32 Binary without crypto (no mod_ssl) (MSI Installer): apache_2.2.9-win32-x86-no_ssl-r2.msi [PGP] [MD5]

    在安裝過程輸入資訊前兩項Network Domain和Server Name中都輸入localhost,下面那個email就隨便了,如果機器安裝了iis並且啟動中,要先把iis服務停掉。否則會和apache的監聽連接埠衝突的。

    2.下載SVN1.5(如果是1.4.6版本則有exe二進位安裝檔案,而1.5目前只有source版,解壓下來即可用)

  • (我安裝的是1.5.5版本:http://subversion.tigris.org/files/documents/15/44589/svn-win32-1.5.5.zip)
    (先安裝了之前的版本:1.4.6,然後弄1.5.5的拷過去覆蓋安裝的目錄檔案)

    將\svn安裝路徑\bin中的檔案mod_dav_svn.so和mod_authz_svn.so,將它們拷貝到Apache的modules目錄,複製%SVN_HOME%\bin\libdb44.dll、libeay32.dll、以及 ssleay32.dll到%APACHE_HOME%\bin

    然後,使用記事本之類的文字編輯器編輯Apache的設定檔\conf\httd.conf做如下修改:

    去掉以下行的注釋(將開頭的#刪除):

    #LoadModule dav_fs_module modules/mod_dav_fs.so
    #LoadModule dav_module modules/mod_dav.so

    在LoadModule節的最後添加以下兩行:

    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so

    * 完成以上步驟也就完成了Apache2.2.9 + svn1.5的基本配置
    現在關閉Apache伺服器,再重啟,會發現Apache控制台的狀態列出現Subversion的資訊
    如:Apache/2.2.9(Win32) SVN/1.5 DAV/2
    這就說明已經成功的將Subversion整合到了Apache當中

    3.下載並安裝TortoiseSVN(http://tortoisesvn.tigris.org/)

  • (我安裝的是1.5.7.15182版本)

    根據嚮導安裝好後,建立版本庫D:\SVN版本庫\repository,右鍵->TortoiseSVN->Create Repository here...“, 然後可以選擇版本庫模式, 這裡使用預設即可, 然後就建立了一系列目錄和檔案。

    4.修改Apache的設定檔

    在Apache的設定檔\conf\httd.conf檔案的尾部添加

    <Location /svn>
      #這裡指定了倉庫的訪問路徑
      DAV svn
      #指定倉庫在硬碟上的實際位置
      SVNPath D:/SVN版本庫/repository
      #認真方式為基本方式
      AuthType Basic
      #認證視窗的標題
      AuthName "Subversion Repository"
      #認證使用者設定檔實際位置
      AuthUserFile "D:/SVN版本庫/passwords.auth"
      #認證許可權設定檔實際位置
      AuthzSVNAccessFile "D:/SVN版本庫/access.auth"
      #設定為需要進行認證
      Require valid-user
    </Location>

    設定 解釋
    <Location /svn> 意思是Subversion版本庫的URL是http://MyServer/svn/
    DAV svn 告訴Apache是哪個模組響應那個URL的請求-此刻是Subversion模組。
    SVNListParentPath on 對於Subversion1.3或者更高版本,這個指示表示顯示所有SVNParentPath下的版本庫。
    SVNParentPath D:\SVN 告訴Subversion需要查看的版本庫位於D:\SVN之下
    AuthType Basic 啟用基本認證,就是使用者名稱/密碼
    AuthName "Subversion repositories" 用來說明何時彈出要求使用者輸入認證資訊的認證對話方塊
    AuthUserFile passwd 指定使用的認證密碼檔案
    AuthzSVNAccessFile 位置Subversion版本庫的存取控制檔案的路徑
    Require valid-user 指定只有輸入了正確的使用者/密碼的使用者可以訪問URL


       * 接下來我們建立認證所需的兩個檔案:使用者檔案和許可權檔案到D:\SVN版本庫下建立檔案 passwords.auth和access.auth(可以用記事本建立後修改檔案名稱)

       * 配置認證使用者檔案passwords.auth,內容如下:

    tom:tom
    cat:cat
    hello:world

    在這裡密碼都沒有加密,如果需要設定密碼加密,可以用Apache安裝目錄下bin目錄中的htpasswd.exe程式產生,具體產生方法如下:

    我的Apache安裝路徑是:
    D:\Program Files\Apache Software Foundation\Apache2.2\
    開啟命令視窗,進入到D:\Program Files\Apache Software Foundation\Apache2.2\bin,
    在命令列中使用如下命令:htpasswd -c D:\svnroot\passwords.auth tom
    斷行符號後會提示輸入密碼,輸入tom,再斷行符號會提示輸入確認密碼,再次輸入tom就可以了
    命令列中的參數-c表示建立一個檔案,第一次運行建立好了,再添加別的使用者的時候就
    不要再使用這個參數了,如我再添加cat和hello使用者
    htpasswd D:\svnroot\passwords.auth cat
    htpasswd D:\svnroot\passwords.auth hello
    這樣建立的使用者密碼預設使用的MD5加密,你開啟檔案以後看到的可能就是如下格式:
    tom:7Z/80Al6$WTqVrBgshc/Bxi6YYkUga1$apr1$
    cat:kNrG459T$qfAZ7MpgpFcdd2xp25gST1$apr1$

    到此我們就添加好了三個使用者tom,cat和hello,他們的密碼分別為tom,cat,world

    * 配置認證許可權檔案access.auth
    直接在D:\svnroot下建立access.auth檔案即可,然後填入如下內容

    [groups]
    dev1 = tom,cat   #開發使用者組1
    dev2 = hello    #開發使用者組2

    [/]
    * = r #設定所有使用者對根目錄有讀許可權,即瀏覽許可權

    [/aaa]
    @dev1 = rw #設定dev1群組成員對aaa目錄有讀和寫入權限
    @dev2 =   #設定dev2群組成員對aaa目錄沒有任何許可權

    [/bbb]
    @dev1 =   #設定dev1群組成員對bbb目錄沒有任何許可權
    @dev2 = rw #設定dev2群組成員對bbb目錄有讀和寫入權限

    [/ccc]
    @dev1 =   #設定dev1群組成員對ccc目錄沒有任何許可權
    @dev2=   #設定dev2群組成員對ccc目錄沒有任何許可權

    到此我們為不同使用者分組定義了許可權,大家可以使用不同的使用者
    進行browse/import/checkout實驗

    訪問路徑為http://localhost/svn

    *配置多倉庫的使用者權限
       * 首先在建立一個倉庫svn2
       * 在D:\svnroot目錄下首先執行D:\svnroot\mkdir svn2建立子目錄svn2
       * 然後執行svnserve create D:\svnroot\svn2建立倉庫svn2

    修改開啟Apache安裝目錄下conf目錄中的httpd.conf檔案,將游標移到問檔案的最末端
    加入的代碼修改如下:

    <Location /svn>
    DAV svn
    #這裡將SVNPath修改為SVNParentPath,目前的目錄為父目錄
    #倉庫svn1和svn2在這個父目錄下
    SVNParentPath D:/svnroot  
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile "D:/svnroot/passwords.auth"
    AuthzSVNAccessFile "D:/svnroot/access.auth"
    Require valid-user
    </Location>

       * 認證使用者檔案passwords.auth不需要做任何修改
       * 認證許可權檔案access.auth修改如下:
    [groups]
    dev1 = tom,cat #開發使用者組1
    dev2 = hello #開發使用者組2

    [svn1:/]
    * = r

    [svn1:/aaa]
    @dev1 = rw #設定dev1群組成員對svn1倉庫下的aaa目錄有讀和寫入權限
    @dev2 =    #設定dev2群組成員對svn1倉庫下的aaa目錄沒有任何許可權

    [svn1:/bbb]
    @dev1 =    #設定dev1群組成員對svn1倉庫下的bbb目錄沒有任何許可權
    @dev2 = rw #設定dev2群組成員對svn1倉庫下的bbb目錄有讀和寫入權限

    [svn1:/ccc]
    @dev1 =    #設定dev1群組成員對svn1倉庫下的ccc目錄沒有任何許可權
    @dev2=    #設定dev2群組成員對svn1倉庫下的ccc目錄沒有任何許可權

    [svn2:/]
    @dev1 =    #設定dev1群組成員對svn2倉庫沒有任何許可權
    @dev2=    #設定dev2群組成員對svn2倉庫沒有任何許可權

    到此我們為不同使用者分組對不同倉庫定義了許可權,大家可以使用不同的使用者
    進行browse/import/checkout實驗

    倉庫1訪問路徑為http://localhost/svn/svn1
    倉庫2訪問路徑為http://localhost/svn/svn2

        對父目錄http://localhost/svn/,任何使用者都沒有任何存取權限

    5.總結

    經過以上幾個部分的介紹,初步實現了Apache2.2.9+Subversion1.5.5(for Apache2.2.X)在windows下的配置與使用權限設定,並且根據單倉庫和多倉庫的不同情況,進行了分別的分析與配置,基本可以滿足日常開發的需要,在實際的開發中,可以根據實際人員和項目的許可權安排,進行相應的配置。

  • 以上經過本人配置實驗,配置成功,通過TortoiseSVN 的版本瀏覽器可以簡單實現了版本的管理

    相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.