一、軟件準備:
- apache 的web 服務器 :httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
- subversion 軟件:Setup-Subversion-1.6.0.msi
二、軟件安裝與配置
安裝web
服務器到D:/Program
Files/asf/Apache2.2
;環境變量“path”
增加“D:/Program Files/asf/Apache2.2/bin”
;
安裝subversion
到D:/Program
Files/Subversion
,環境變量“path”
增加“D:/Program
Files/Subversion/bin”
;
編輯apache
安裝目錄下的conf
目錄下的httpd.conf
文件(
推薦用editplus)
把這兩行的註釋去掉
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
然後把Subversion
中bin
下的intl3_svn.dll
、libdb44.dll
、libeay32.dll
、ssleay32.dll4
個dll
文件放到apache
的bin
文件夾下,然後把Subversion
中bin
下的mod_authz_svn.so
和mod_dav_svn.so
複製到apache
的modules
文件夾下。
重啓apache
,確保apache
能重啓後繼續下面的操作
。
在apache
的httpd.conf
中追加入:
<Location /svn/>
DAV svn
#
指向SVN Repository
的ROOT
SVNListParentPath on
SVNParentPath F:/svntest
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile F:/svntest/passwd
AuthzSVNAccessFile F:/svntest/authz
Require valid-user
## Satisfy Any
</Location>
在F:/svntest
下用“svnadmin”
命令創建兩個配置庫“repos1”
和“repos2”
,將兩個庫裏面的conf
目錄下的svnserver.conf
都配置如下參數
password-db = ../../passwd
authz-db = ../../authz
然後將authz
和passwd
拷貝出來到F:/svntest
下並進行個性化配置。
三、測試步驟
我的配置爲:
--------authz--------------
[aliases]
[groups]
repog1 = cc1
repog2 = cc2
[/]
* = rw
[repos1:/]
@repog1 = rw
* =
[repos2:/]
@repog2 = rw
* =
------------------------------
--------------passwd----------
cc1:123456
cc2:1234
------------------------------
備註:passwd
文件的目錄可以手動添加明文密碼,也可以用apache
安裝目錄下的bin
目錄中的httpwd
來加密,詳情請參見
httpasswd - 管理用於基本認證的用戶文件
-----------------------------------------------
今天我達到的結果:
瀏覽http://localhost/svn/
顯示
-------------------------
Collection of Repositories
repos1/
repos2/
Powered by Subversion version 1.6.0 (r36650).
-------------------------
瀏覽http://localhost/svn/repos1/
顯示
--------------------------
repos1 - Revision 9: /
V1.01Java
編程規範(Java Programming
Conventions).doc
WebService simple.doc
Windows
下安裝pache+php+mysql+bugfree.doc
Powered by Subversion version 1.6.0 (r36650).
--------------------------
瀏覽http://localhost/svn/repos2/
顯示
--------------------------
repos2 - Revision 9: /
JBS.doc
JVM
學習筆記.doc
java
學習目錄.doc
java
開源大全.doc
java
疑難.doc
java
知識點歸納.doc
java
面試集錦.doc
jsp
六大對象.doc
linux
試題.doc
---------------------------------------------
Powered by Subversion version 1.6.0 (r36650).
--------------------------
因爲權限問題,repos1
切換到repos2
需要關閉瀏覽器重開窗口。
用 TortoiseSVN
瀏覽
四、配置要點:
(1)apache的配置要一步步來,成功了才進行下一步配置。如果最後才重啓看配置成功沒,會喫虧:不知道配置錯在哪個環節。
(2)配置文件要仔細寫。注意中英文、全與半角、空格與否。
(3)注意看apache的日誌。當我苦思鑑權配置失敗時,根據瀏覽器的“Forbidden You don't have permission to access /svn/repos2/ on this server.”死人沒看出來
,後來根據apache的log中的“[Fri Jun 10 18:53:14 2011] [error] [client 127.0.0.1] Failed to load the AuthzSVNAccessFile: F://svntest//authz:6: Section header must start in the first column”才知道是鑑權文件的格式錯了,注意用ie9看不到forbidden信息,我用火狐4纔看到。
後續工作
:打算將用戶信息保存到LDAP中,將apache與LDAP server整合…………