svn+apache集成環境配置

Subversion是一個自由,開源的版本控制系統。在Subversion的管理下,每一次文件的修改都會被記錄在版本庫中,可以方便的查看文件的修改歷史,修改的一些信息,方便的恢復到修改前

 

的任意狀態。

 

搭建環境:win XP SP3+ Apache2.2.2 + svn1.7.5

 

svn官網:http://subversion.apache.org/packages.html

http://subversion.apache.org/docs/ 下載說明文檔

根據需要下載對應版本,以win32爲例。

 

1. http://sourceforge.net/projects/win32svn/files/1.7.5/

 

  下載 Setup-Subversion-1.7.5.msi 安裝svn服務器,svn可以單獨運行,也可以集成Apache服務器。

 

  下載TortoiseSVN 客戶端,在win系統上,可以方便的與svn配合使用。

  TortoiseSVN下載: http://tortoisesvn.net/downloads.html

 

客戶端安裝完成後,右鍵菜單:

svn+apache集成環境配置


首先創建版本庫:

svn Subversion\bin所在目錄添加到 Path環境變量裏面

svnadmin create F:\test

可以直接建立空文件夾,然後右鍵創建版本庫

 svn+apache集成環境配置


默認生成的目錄結構

conf更改默認配置

svnserve.conf

 

anon-access 匿名用戶的訪問權限

auth-access 認證用戶的訪問權限

 

值可以爲

write 可讀寫

read  只讀

none 拒絕訪問

 

password-db = passwd 配置用戶信息

默認使用當前目錄下的passwd文件保存,可以更改爲其它路徑

authz-db = authz 配置用戶權限

默認使用當前目錄下的authz文件保存,可以更改爲其它路徑

realm = My First Repository 版本庫標示,默認爲UUID

force-username-case = none 是否忽略用戶名的大小寫 默認爲none

use-sasl = true 是否啓用Cyrus SASL驗證庫,默認值是false

 

min-encryption = 0

# max-encryption = 256

這些選項指定安全層SASL所需的強度

0表示不加密,1表示只檢查完整性

值大於1。(例如:128表示128位有效密鑰長度

###加密)。

passwd 保存用戶信息

admin = admin 賬號和密碼爲admin

開啓svn服務,啓動後dos框如果關閉,服務就停止。可以寫入win 服務

 

svnserve -d -r F:\test1

svn+apache集成環境配置

瀏覽版本庫,會出現上面認證框。輸入配置好的用戶如admin,會提示認證失敗。

還需要配置authz,添加對應的權限

默認的目錄結構

[aliases]

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

 

# [/foo/bar]

# harry = rw

# &joe = r

# * =

 

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

 

[groups] 用戶組

manager = admin,test

user = user

[/] 

@manager = rw

user = r

*=

@manager表示 manager 用戶組下面的所有用戶都有讀寫根目錄下文件的權限

user = r 表示 user 用戶有隻讀權限

*= 表示除了上述用戶和擁護者外,其它人無任何權限

 

 

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

同上,配置目錄下面文件的詳細權限

 

svn + Apache 集成

 

1.       Apache下載 http://httpd.apache.org/download.cgi  

httpd-2.2.22-win32-x86-openssl-0.9.8t.msi 本文下載版本

具體安裝請度娘和谷哥

 

2.       配置httpd.conf

打開Apache的安裝目錄 Apache2.2\conf\httpd.conf 文件

去掉

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

這個兩個的#註釋

添加下面兩個

LoadModule dav_svn_module modules/mod_dav_svn.so 

LoadModule authz_svn_module modules/mod_authz_svn.so

3.       配置虛擬路徑

#/cncit  訪問svn虛擬庫名稱,可以隨意配置

<Location /cncit> 

#引用遠程訪問模塊

DAV svn 

# SVNPath項目版本庫路徑

SVNPath F:/cncit   

</Location>

4.       找到Subversion服務器安裝目錄

 \Subversion\bin目錄下 mod_dav_svn.so  mod_authz_svn.so 複製到

Apache2.2\modules 目錄下

然後重啓Apache 服務器

 svn+apache集成環境配置


在瀏覽器輸入對應地址,就可以訪問了。

apache 默認監聽端口爲Listen 80,但端口可能被佔用。修改爲適合的端口)

 

以上配置所以匿名用戶都可以訪問並任意修改源代碼

 

5.       添加http認證

基於http的認證,使用用戶名和密碼來驗證一個用戶。Apache提供了一個 htpasswd 工具來管理一個用戶認證文件,這個文件包含用戶名和加密後的密碼,然後就可以控制用戶的訪問。htpasswd 可以在 Apache bin 安裝目錄下找到。

    Htpasswd 用法

D:\Apache2.2\bin>htpasswd

Usage:

        htpasswd [-cmdpsD] passwordfile username

        htpasswd -b[cmdpsD] passwordfile username password

 

        htpasswd -n[mdps] username

        htpasswd -nb[mdps] username password

 -c  Create a new file.

 -n  Don't update file; display results on stdout.

 -m  Force MD5 encryption of the password (default).

 -d  Force CRYPT encryption of the password.

 -p  Do not encrypt the password (plaintext).

 -s  Force SHA encryption of the password.

 -b  Use the password from the command line rather than prompting for it.

 -D  Delete the specified user.

On other systems than Windows, NetWare and TPF the '-p' flag will probably not work.

The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.

 

 svn+apache集成環境配置


 

創建用戶文件:

 D:\Apache2.2\bin>htpasswd -cb pswd zyq zyq

Adding password for user zyq

D:\Apache2.2\bin>

 

創建一個pswd的驗證文件,並添加一個zyq用戶

 

D:\Apache2.2\bin>htpasswd -b pswd test test

Adding password for user test

D:\Apache2.2\bin>

添加用戶一個新的用戶

 

修改 httpd.conf,在 Location 標籤中加入如下內容:

AuthType Basic

AuthName "cncit"

AuthUserFile D:/Apache2.2/bin/pswd

Require valid-user

 

說明:

AuthType Basic:啓用基本的驗證,比如用戶名/密碼對。

AuthName "cncit":當一個認證對話框彈出時,出現在認證對話框中的信息。(最好用英文,TortoiseSVN 不支持中文,安裝語言包除外。)

AuthUserFile D:/Apache2.2/bin/pswd指定D:/Apache2.2/bin/pswd爲用戶文件,用來驗證用戶的用戶名及密碼。

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

配置完成的 Location標籤

<Location /cncit> 

 

DAV svn 

 

SVNPath F:/cncit 

 

AuthType Basic

 

AuthName "cncit"

 

AuthUserFile D:/Apache2.2/bin/pswd

 

Require valid-user

 

</Location>

 

重啓Apache服務,然後訪問版本庫,

 svn+apache集成環境配置


輸入配置的用戶信息,就可以訪問了.

 

6.       單個版本庫和多個版本庫的配置

a.單庫配置

 svn+apache集成環境配置


<Location /test>

DAV svn

SVNPath F:\test

</Location>

版本庫對外的URL是:http://服務器IP/test/ ,所有的Subversion版本庫在物理上位於F:\test目錄。

 

b.多庫配置

 

 svn+apache集成環境配置


<Location /svn/>

 DAV svn

 SVNParentPath F:\svn

</Location>

 

SVNParentPath F:\svn 表示 F:\svn 下的每個子目錄都是一個版本庫。可以通過 http://服務器IP/svn/pro1/http://服務器IP/svn/pro2/ 來訪問不同的版本庫

 

多個版本庫使用統一的認證,禁止匿名用戶訪問

<Location /cncit>   

DAV svn  

SVNParentPath F:\svn

AuthType Basic

AuthName "cncit"

AuthUserFile D:/Apache2.2/bin/pswd

Require valid-user  

</Location>

使用LimitExcept標籤,標示匿名用戶可以訪問,只有認證用戶有修改的權限

<Location /cncit>   

DAV svn  

SVNParentPath F:\svn

AuthType Basic

AuthName "cncit"

 

AuthUserFile D:/Apache2.2/bin/pswd  

<LimitExcept GET PROPFIND OPTIONS REPORT>

require valid-user

</LimitExcept>

</Location> 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章