【转】Subversion与Apache的融合
整合Subversion与Apache是一种比较适合协作的方法,其配置方式如下:
整合Subversion与Apache
另一种比较常用的使用SVN的方式是将其与apache整合。通过http协议来访问代码,通过web界面来浏览察看,通过http服务器的安全控制来进行权限认证。
关于Subversion与Apache的融合蔡煥麟先生有一篇整合的详细教程,此处不再缀述,请参见:icles/softeng/scm/svn/http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm
安装要点记录如下:
假设安装Apache至D:\Apache2
1复制%SVN_HOME%\bin\libdb42.dll、libeay32.dll、以及ssleay32.dll到%APACHE_HOME%\bin
2复制%SVN_HOME%\httpd\*.so到%APACHE_HOME%\modules
3修改%APACHE_HOME%\conf\httpd.conf,增加或修改:
- LoadModuledav_modulemodules/mod_dav.so
- LoadModuledav_fs_modulemodules/mod_dav_fs.so
- LoadModuledav_svn_modulemodules/mod_dav_svn.so
- LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
4在
- <Location/svn>
- DAVsvn
- #指向SVNRepository的ROOT
- SVNPathd:/svnrepo
- Location>
5重启apache,通过浏览器访问http://localhost/svn可看到Subversion的信息。
Subversion与Apache的融合在访问控制的方面,蔡先生采用的是windows域用户身份验证。此处也可以用mysql,passwd文件,LDAP等其他任何Apache支持的验证方式。此处我采用文件方式,首先建立一个保存密码的文件,如果不需要对密码加密,可增加-p参数生成plaintext。%APACHE_HOME%\bin\htpasswd–c-pd:\passwd\passwordsuser1生成的文件内容如下:
- #格式username:password
- user1:123456
- 如果要按照Group的方式来控制权限,可同时建立一个groups文件,内容如下:
- #格式:GroupName:username1username2
- svngroup:user1user2
- 在httpd.conf中的/svn处增加权限控制部分:
- <Location/svn>
- DAVsvn
- #指向SVNRepository的ROOT
- SVNPathd:/svnrepo
- AuthTypeBasic
- AuthName"SubversionRepository"
- AuthUserFiled:/passwd/passwords
- AuthGroupFiled:/passwd/groups
- Requiregroupsvngroup
- Location>
重起服务器,浏览http://localhost/svn,出现安全对话框,输入用户名密码即可成功。
Subversion与Apache相关网站:http://httpd.apache.org/ApacheWebServer官方网站
参考资料
http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm蔡煥麟SVNforWindows的安装教程
http://www.douzhe.com/docs/ApacheManual/Apache2.0中文参考
http://httpd.apache.org/docs-2.0/Apache2.0文档
http://developer.51cto.com/art/201005/201387.htm