• Apache结合mod_dav_svn和mod_authz_svn打造SVN服务器

    制作SVN服务器的软件和工具有很多,比如每个SVN都有的svnserve,以及图形化界面超容易使用的VisualSVN Server。但是,现在既然有Apache服务器,那就直接用就是了,而且还可以使用Web浏览目录。

    首先,前往这里下载对应的SVN发行包,我下载的是Win32Svn。里面自带mod_dav_svn.so与mod_authz_svn.so。使用与Apache2.2,其他版本请自行测试。

    然后,把Win32Svn解压缩,如d:\Subversion,然后在系统环境变量中加上d:\Subversion。

    接着,把mod_dav_svn.so与mod_authz_svn.so拷贝到apache的modules目录。

    修改httpd.conf,把以下两行前面的“#”注释去掉:

    LoadModule dav_fs_module modules/mod_dav_fs.so
    LoadModule dav_module modules/mod_dav.so

    在所有LoadModule的最后加上下面两行:

    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so

    假设使用d:\svn作为仓库的地址,则在httpd.conf或对应虚拟主机的配置中加上:

    #SVN START
    <Location /svn>
        DAV svn
        SVNParentPath D:\svn
        AuthType Basic
        AuthName "blog.creke.net SVN"
        AuthUserFile D:\svn\.htpasswd
        AuthzSVNAccessFile D:\svn\.ht_svn_authz
        Require valid-user
    </Location>
    #SVN END

    具体的配置参数可以查看这里这里

    其中的.htpasswd是用户密码文件,与apache的一样。

    .ht_svn_authz是访问控制文件,可以在svnadmin create后,在conf目录下authz.conf找到该文件带有注释的原型。

    如果在blog.creke.net的虚拟主机中加上以上配置,再执行“svnadmin create d:\svn\rep1”后,我们访问http://blog.creke.net/svn/rep1时,就会访问到对应的rep1的仓库。

    使用这个方法,apache就会兼做svn服务器,就不需要单独启动svnserve了。

    分类: 所谓技术 | 标签: ,,