技术开发 频道

Subversion与Apache的融合

【IT168 技术文章】

    整合Subversion与Apache是一种比较适合协作的方法,其配置方式如下:

    整合SVN与Apache

    另一种比较常用的使用SVN的方式是将其与apache整合。通过http协议来访问代码,通过web界面来浏览察看,通过http服务器的安全控制来进行权限认证。

    蔡煥麟先生有一篇整合的详细教程,此处不再缀述,请参见:
http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm

    安装要点记录如下:

    0 假设安装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,增加或修改:

    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
 

    4 在<VirtualHost>中增加/svn的<Location>

   <Location /svn>

    DAV svn

    # 指向SVN Repository的ROOT

    SVNPath d:/svnrepo

    </Location>
 

    5 重起apache,通过浏览器访问http://localhost/svn 可看到Subversion的信息。

    在访问控制的方面,蔡先生采用的是windows域用户身份验证。此处也可以用mysql,passwd文件,LDAP等其他任何Apache支持的验证方式。

    此处我采用文件方式,首先建立一个保存密码的文件,如果不需要对密码加密,可增加-p参数生成plain text。

    %APACHE_HOME%\bin\htpasswd –c -p d:\passwd\passwords user1

    生成的文件内容如下:

    #格式username:password

    user1:123456
 

    如果要按照Group的方式来控制权限,可同时建立一个groups文件,内容如下:

    #格式:GroupName: username1 username2

    svngroup: user1 user2
 

    在httpd.conf中的/svn处增加权限控制部分:

    <Location /svn>

    DAV svn

    # 指向SVN Repository的ROOT

    SVNPath d:/svnrepo

   

    AuthType Basic

    AuthName "Subversion Repository"

    AuthUserFile d:/passwd/passwords

    AuthGroupFile d:/passwd/groups

    Require group svngroup

    </Location>
 

    重起服务器,浏览http://localhost/svn,出现安全对话框,输入用户名密码即可成功。

    相关网站

    http://httpd.apache.org/ Apache Web Server 官方网站

    参考资料

    http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm 蔡煥麟 SVN for Windows的安装教程

    http://www.douzhe.com/docs/ApacheManual/ Apache2.0 中文参考

    http://httpd.apache.org/docs-2.0/ Apache2.0 文档

0
相关文章