Windows下搭建和配置Subversion伺服器

來源:互聯網
上載者:User

1、軟體下載

下載Subversion伺服器程式。

到http://subversion.tigris.org/ 的下載二進位安裝檔案,Windows部分下載,http://www.collab.net/downloads/subversion/ 。
我下載的是CollabNetSubversion-server-1.5.4-1.win32.exe。

2、伺服器和用戶端安裝

Subversion1.5版本的安裝包內建了Apache2.2.8,所以無需額外安裝Apache伺服器。

一路預設安裝,如果需要修改倉庫根目錄或者Apache2.2.8連接埠可以自行修改為自己的資訊,Apache預設連接埠為80,Subversion預設倉庫儲存路徑為C:svn_repository可自由設定倉庫儲存路徑(E:\svn_repository)。
安裝的過程中會自動將Subversion和Apache註冊成服務,安裝完成後重啟一下電腦,運行services.msc查看服務,可以看到 “Apache2.2”和“Subversion Server”兩個服務已經自動啟動,如果不想讓他們自動啟動,可以修改為手動啟動。

3、建立版本庫(Repository)

資料存放區格式:Berkeley DB 和FSFS。
運行Subversion伺服器需要首先要建立一個版本庫(Repository),可以看作伺服器上存放資料的資料庫,在安裝了Subversion伺服器之後,可以直接運行,如:
svnadmin create E:\svn_repository\svndemo
(預設的資料存放區方式FSFS,也可以通過--fs-type參數明確地制定檔案系統類型,可選的值包括fsfs和dbd)。
就會在目錄E:\svndemo\repository下建立一個版本庫。
我們也可以使用TortoiseSVN圖形化的完成這一步:

在目錄E:\svndemo\repository下"右鍵->TortoiseSVN->Create Repository here...“, 然後可以選擇版本庫模式, 這裡使用預設即可, 然後就建立了一系列目錄和檔案。
4,配置使用者和許可權

配置subversion

修改E:\svndemo\repository\conf目錄下的檔案svnserve.conf:

#沒通過驗證,則無任何許可權
#anon-access = none
#通過驗證,最多可獲得寫入權限
#auth-access = write
#驗證檔案的位置
#password-db = passwd
#許可權設定檔的位置
#authz-db = authz

去除行開頭的注釋關鍵字,並設定為:

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

建立權限原則檔案authz:(在svnserver.conf同目錄下有authz檔案,修改anthz)

[groups]

admin = admin,root

#關鍵字“@”代表組

[svndemo:/]

@admin = r

guest = rw
[/svndemo:/Trunk]
@admin = r

如果使用svn://localhost/方式串連版本庫,則設定如下內容:
然後修改同目錄的passwd檔案,去掉下面三行的注釋:
# [users]
# harry = harryssecret
# sally = sallyssecret
最後變成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd檔案中,“=”前的字元就是使用者名稱,後面的就是密碼。還要注意“[users]”前面的注釋“#”一定要刪除掉

如果使用http://localhost/svn/svndemo方式串連版本庫,則設定如下內容:

用apache htpasswd 建立使用者密碼檔案,並添加使用者密碼到密碼檔案中:

首次建立一個新的認證檔案並在其中添加一條使用者aa的記錄,密碼將被提示輸入。

htpasswd -c E:\svn_repository\svndemo\.htpasswd aa

(在E:\svn_repository\svndemo目錄下會產生一個.htpasswd檔案,存放使用者aa和aa的密碼)
添加或修改使用者aa的密碼。密碼將被提示輸入。在Windows平台上,密碼將使用Apache修改過的MD5演算法進行加密;在其它平台上將使用crypt()進行加密。如果指定的檔案不存在,htpasswd將只返回一個錯誤碼,而不做其它任何事:

htpasswd E:\svn_repository\svndemo\.htpasswd aa

在Apache/conf/httpd.conf中註冊Subversion瀏覽庫和許可權控制moudle:

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

注意:mod_dav_fs.so 和mod_dav.so必須被開啟(去掉開頭的注釋關鍵字“#”),且必須在mod_dav_svn.so
和mod_authz_svn.so之前

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

在Apache/conf/httpd.conf中添加Location:

#表示訪問配置庫的url為:http://xxx.xxx.xxx/SVN

<Location /svn>

#告訴Apache哪個模組負責服務像那樣的URL

DAV svn

#配置庫路徑:

SVNParentPath E:\svn_repository

#啟用基本的驗證,使用者名稱/密碼驗證

AuthType Basic

#當一個驗證對話方塊彈出時,告訴使用者這個驗證是用來做什麼的

AuthName "svn repos"

#身分識別驗證檔案的路徑

AuthUserFile E:\svn_repository\svndemo\.htpasswd

#指定authz來限定各個使用者或組在版本庫中目錄的存取權限

AuthzSVNAccessFile E:\svn_repository\svndemo\conf\authz

#只允許https方式訪問

#SSLRequireSSL

#Subersion內建的XSLT樣式表

#SVNIndexXSLT "/svnindex.xsl"

#允許匿名訪問

#Satisfy Any

#禁止匿名訪問

Require valid-user

#允許訪問/svn目錄

SVNListParentPath on

</Location>

5,運行獨立伺服器

運行apache伺服器,使用http://svn伺服器IP/svn/svndemo 串連伺服器。

單獨運行svn服務的話在任意目錄下運行: svnserve -d -r E:\svndemo\repository 我們的伺服器程式就已經啟動了。注意不要關閉命令列視窗,關閉視窗也會把svnserve停止。

6Subversion控制中文目錄的存取權限

方法很簡單,就是將你的許可權控制檔案的格式轉換為無BOM的UTF-8格式,
將許可權檔案改成UTF-8格式,我使用的是UltraEdit的菜單"ASCII to UTF-8 (Unicode
Editing)"。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.