apache的HTTP服務器和subversion的集成

 

一、軟件準備:

  1. apache web 服務器 :httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
  2. subversion 軟件:Setup-Subversion-1.6.0.msi

 

二、軟件安裝與配置
安裝web 服務器到D:/Program Files/asf/Apache2.2 ;環境變量“path” 增加“D:/Program Files/asf/Apache2.2/bin”
安裝subversionD:/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

然後把Subversionbin 下的intl3_svn.dlllibdb44.dlllibeay32.dllssleay32.dll4dll 文件放到apachebin 文件夾下,然後把Subversionbin 下的mod_authz_svn.somod_dav_svn.so 複製到apachemodules 文件夾下。


重啓apache確保apache 能重啓後繼續下面的操作


apachehttpd.conf 中追加入:
<Location /svn/>
    DAV svn
    #
指向SVN RepositoryROOT
    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

然後將authzpasswd 拷貝出來到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整合…………

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