前面的blog主要介绍了Trac以及Trac与Apache的集成,下面补充说明一下Subversion与Apache的集成。
1. 下载并安装程序
- Apache-2.0.59,在目前win32平台下,建议暂时不要选择Apache2.2.x,因为包括SVN在内,很多Module都还没有支持Apache2.2的版本
- svn-1.4.3,执行安装程序会自动的配置apache的配置文件httpd.conf。如果没有自动配置成功,需参考后面说明手动配置。
- TortoiseSVN,这是一个可选软件,和本主题没有关系。但是如果在win32平台下开发,还是非常推荐使用这个SVN扩展。
2. 配置httpd.conf
- 将Subverion安装目录下的mod_dav_svn.so和mod_authz_svn.so复制到Apache的modules目录
- 打开httpd.conf,增加如下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so - 注意,由于dav_svn需要dav_module的支持,所以要确保下面这一行没有被注释,并且保证在dav_svn之前加载:
LoadModule dav_module modules/mod_dav.so
3. 设置SVN的目录
- 在httpd.conf里面加入下面一段内容
<Location /svn>
DAV svn
SVNParentPath “F:/svn”
</Location> - 在这里使用的是SVNParentPath指令,这样”F:\svn”目录下的所有svn仓库都可以被访问,如http://localhost/svn/proj1
- 如果只单一的设定某一仓库,则可以使用SVNPath指令:
<Location /svn/proj1>
DAV svn
SVNPath “F:/svn/proj1”
</Location>
4. 访问控制,SVN的访问控制有两种方式,这里介绍使用apache的访问控制方式
- 建立password文件
F:\apache\bin>htpasswd -cp F:\apache\conf\trac.passwd test
New password: ****
Re-type new password: ****
Adding password for user test
在这里使用了-p参数,是以明文的方式保存密码。win平台下默认是MD5加密,但是在配置Trac的时候总提示密码文件格式不对,有谁知道如何解决,请指教。 - 在httpd.conf中增加访问控制,如:
<Location /svn>
DAV svn
SVNParentPath “F:/_SVNData”AuthType Basic
AuthName “Trac”
AuthUserFile F:\apache\conf\trac.passwd
Require valid-user</Location> - 这样访问http://localhost/svn/proj1时就会弹出标准的http密码对话框。
2 replies on “集成Subversion(SVN)与Apache 2.0.x”
在本地这么设置的确可以成功,但是在局域网里将访问路径http://localhost/svn/proj1中的localhost改为局域网一台机子时却不可以了,错误是 页面无法显示 。。。。不知道怎么办,请多指教!郁闷中。。。。
这个应该是你web服务器的配置问题。检查一下配置(比如webserver所listen的ip和端口)以及服务器的防火墙是否允许外部访问。