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整合…………

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