初步實現了Apache2.2.9+Subversion1.5.5在windows下的配置與使用權限設定

來源:互聯網
上載者:User

URL:http://www.iusesvn.com/ 

 

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_module modules/mod_dav.so
在LoadModule節的最後添加以下兩行:
LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/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.