一、软件准备:
- 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整合…………