Subversion1.6.15 + apache2.2.17 + AnkSVN2.1總結(中……)

輔助開發的軟件有不少種,在Visual Studio開發中,針對於版本管控,Subversion+apache+AnkSVN多是比較好的搭配選擇。在配置服務器的時候,須要花費不少時間,下班閒暇之餘,我想mark一下,一邊將來再次須要配置的時候能夠比較從容,但願給閱讀該文章的朋友也能夠解決一些困惑。php

Subversion:置於服務器端,開發源代碼的版本管控軟件的核心。web

apache:置於服務器端,主要用於web管控,例如建制和開啓「服務」。(Subversion脫離apache,須要用Subversion安裝目錄下的一個svnserve.exe啓動服務repository,在這裏咱們不對此方法具體解釋,若有興趣的可留言mark,有機會一塊兒討論下)apache

AnkSVN:置於客戶端,結合visual studio使用,有使用過Tortoise的朋友應該很容易上手,由於具體的功能和操做相似,只是在visual studio端做了一個結合,方便visual studio開發者使用服務器

步驟以下:(注意:請沒有配置過的朋友嚴格按照文章的順序配置,跳過某段均可能致使配置時出現的問題沒法處理)ide

1)     複製C:\Program Files\Subversion \bin目錄下的mod_dav_svn.somod_authz_svn.soC:\Program Files\Apache Software Foundation\Apache2.2\modules目錄下。svn

2)     複製C:\Program Files\Subversion \bin目錄下的全部dll文件(共17個文件)到C:\Program Files\Apache Software Foundation\Apache2.2\bin目錄下工具

3)     C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf配置文件,找到#LoadModule dav_module modules/mod_dav.so#LoadModule dav_fs_module modules/mod_dav_fs.so文件 ,並取消前面的「#」。並在LoadModule dav_fs_module modules/mod_dav_fs.so的下一行增長:LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so,一個語句一行,最後的形式爲:ui

LoadModule dav_module modules/mod_dav.so加密

LoadModule dav_fs_module modules/mod_dav_fs.sourl

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

2.     使用Apache自帶的htpasswd工具,生成密碼文件,操做以下:

1)     創建C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn目錄(該目錄用於存儲 htpasswd命令生成的passwd的文件,在配置文件的編寫,你將看到)

2)     DOS界面,輸入以下命令:

C :\ \Apache\Apache2\bin > htpasswd -cm d:\passwd user1   //htpasswd命令建立第一個用戶(user1),同時生成密碼認證文件,c參數爲create,m參數爲MD5加密方式
New password: ******
Re-type new password: ******
Adding password for user user1   //
加入用戶成功

C:\Program Files\Apache Group\Apache2\bin> htpasswd -m d:\passwd user2   //htpasswd命令建立第二個用戶(user2),注意若是在這時加入c參數會覆蓋掉以前建立的用戶及文件。
New password: ******
Re-type new password: ******
Adding password for user user2   //
加入用戶成功

SVN配置

版本庫配置

首先建立版本庫存儲位置,如:D:\svnserver\repository

版本庫分單庫模式和多庫模式,簡單的說多庫就是在\repository目錄下有多個版本庫,好比能夠用http://localhost/repository/repo01http://localhost/repository/repo02,...來訪問不一樣的版本庫,這些版本庫對應於D:\svnserver\repository下面的子目錄repo01repo02,…。而單庫只能用http://localhost/repository來訪問惟一的版本庫。

1.     單庫模式配置

打開配置文件:

C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf,在文件最後增長:

<Location /repository>

DAV svn

SVNPath "D:\svnserver\repository" 

AuthType Basic

AuthName "LiMengLei subversion repository"

AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn\passwd"

Require valid-user

</Location>

配置表示:你全部的版本庫將位於D:\svnserver\repository目錄下,要訪問你的版本庫可使用這樣的URLhttp://YourIP/ repository /,訪問權限將由passwd文件中的用戶名/密碼來限制。

詳細說明以下:

---------------------------------------------------------------------

<Location /repository >  //訪問SVN服務器的URL組成模式

意味着能夠經過這樣的URL(http://serverIP/ repository)來訪問Subversion版本庫

DAV svn

告訴Apache哪一個模塊負責負責上面的URL--在這裏就是Subversion模塊

SVNPath "D:\svnserver\repository"

告訴Subversion在目錄D:\svnserver\repository下尋找版本庫

AuthType Basic

啓用基本的驗證,好比用戶名/密碼

AuthName "LiMengLei subversion repository"

當一個驗證對話框彈出時,告訴用戶這個驗證是用來作什麼的

AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn\passwd" 

指定C:\..\passwd做爲密碼文件用來驗證SVN用戶的用戶名及密碼

Require valid-user

限定用戶只有輸入正確的用戶名及密碼後才能訪問這個路徑

若想配置無需用戶名驗證的登陸方式,可在httpd.conf的最後添加以下內容:

<Location /repository>

DAV svn

SVNPath "D:\svnserver\repository" 

</Location>

 

2.     多庫模式配置

多庫模式的配置方式實際上就是將SVNPath "D:\svnserver\repository"中的SVNPath變爲SVNParentPath。所有文件以下:

<Location /repository>

DAV svn

SVNParentPath "D:\svnserver\repository" 

AuthType Basic

AuthName "LiMengLei subversion repository"

AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn\passwd"

Require valid-user

</Location>

3    運行版本庫

1).若已安裝TortoiseSVN,在D:\svnserver目錄下,選中repository文件夾,右鍵TortoiseSVN--->Create repository here

2).經過命令方式創建版本庫,

DOS命令輸入:C:\Program Files\Subversion\bin >svnadmin create D:\svnserver\repository

重啓Apache,在IE地址欄中輸入http://localhost/repository。輸入用戶名limenglei密碼123456,界面中出現Revision 0:/。恭喜,你的版本庫已經開始運做。

4 權限控制

打開配置文件:

C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf。將最後添加的<Localtion /repository>內容修改以下:

<Location /repository>

DAV svn

SVNPath "D:\svnserver\repository" 

AuthzSVNAccessFile D:\svnserver\repository\conf\authz(該文件的修改的方法在文章最低端,是權限的管控)

AuthType Basic

AuthName "LiMengLei subversion repository"

AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\conf_svn\passwd"(這是你生成的密碼文件,copy到該目錄下,或將目錄名稱指向該文件)

Require valid-user

</Location>

authz文件中定義了每一個帳號或者每一個角色能夠幹什麼,看如下的例子:

[repo01:/]

User1 = rw

User2 = r

對於多庫,定義其中一個repo01下的全部目錄,運行user1讀寫,users只讀

[repo01:/project1]

User1 = rw

User2 = r

和上面相似,只不過規定細化到了子目錄

[/project1]

User1 = rw

User2 = r

這個說的是單庫的狀況

[groups]

Admin = user1,user3

Readonly = user2,user4

[repo01:/]

@admin = rw

@readonly = r

這個就是設定角色了,和前面的區別主要是有了group,而後group的名字前面有@,爲了和用戶名區分。

 

這暫時是大體的配置內容,後續再做修改~

相關文章
相關標籤/搜索