制作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了。
好像还是ssh svn来的方便!!!啥都不用配,装好subversion就可以用了。。。
这个还要培训使用SSH,成本太高,嘻嘻