SVN是一个非常优秀的版本控制工具,Apache Http Server 是最先进的Http服务器。Apache早已经推出2.2系列了,但是Subversion并不能很好的支持在Apache 2.2系列中配置。不过最新的SVN 1.4系列已经能够支持在Apache 2.2中配置了,下边简单的说说在Windows系统中如何在Apache 2.2系列中配置 SVN吧!
注意:SVN采用 1.4.4版本,Apache采用2.2.4版本(其它版本应该大同小异)。 1、下载Apache和Subversion。SVN:去Subversion的 下载Windows下的 Apache 2.2版本的文件,对应的地址为
Win32 packages built against Apache 2.2 (不保证一直能用,最好自己去Subversion主页去找)。Apache Http Server: 下边能找到Apache 2.2.4版本的下载地址,目前为: 。
2、安装Apache 2.2.4,比较简单按照提示安装即可,友情提示:最好不要选择默认的安装目录,装载根目录下用起来最方便,比如安装在 C:\Apache Software Foundation\Apache2.2 目录下。
3、解压下载的 svn-win32-1.4.4.zip 至某一目录,比如解压至目录:C:\Subversion Server。
4、修改Apache的配置文件 httpd.conf 如下:
在LoadModule cgi_module modules/mod_cgi.so这一行(大概是第83行)后边增加如下内容
# For SVN
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
或者在模块加载列表找到以下语句:#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_modulemodules/mod_authz_svn.so
5、拷贝解压後的SVN目录下bin文件夹(对应本例即为 C:\Subversion Server\bin)下的mod_authz_svn.so和mod_dav_svn.so这两个文件,到Apache安装目录下的modules文件(本例即为目录 C:\Apache Software Foundation\Apache2.2\modules)下。
解压後的SVN目录下bin文件夹(对应本例即为 C:\Subversion Server\bin)下的libdb44.dll、libeay32.dll、ssleay32.dll到Apache安装目录下的bin文件夹(即目录(本例即为目录 C:\Apache Software Foundation\Apache2.2\bin)下。
6、设置环境变量,必不可少的一步:APR_ICONV_PATH=SVN解压目录\iconv,并增加Path变量SVN解压目录\bin,对应本例,设置如下:(环境变量的设置方法略)
APR_ICONV_PATH=C:\Subversion Server\iconv
在Path变量中增加C:\Subversion Server\bin
7、创建了版本库以后,修改Apache配置文件httpd.conf,根据需要创建服务器。
不带有任何权限控制的SVN服务器:
在文件最后追加如下内容:#SVN
DAV svn
SVNListParentPath on #使用SVN版本库列表功能
SVNParentPath D:\SVN #SVN版本库根目录
较完备的SVN服务器:(在httpd.conf后追加如下内容)#SVN
DAV svn
SVNListParentPath on
SVNParentPath D:\SVN #SVN版本库根目录
#认证的类型
AuthType Basic
#认证的名称,显示于登录提示框
AuthName "Subversion repositories!Login needed!"
#Which password file to use for authentication 存储用户登录信息的文件
AuthUserFile D:\SVN\passwd
#Location of the Access file for paths inside a Subversion repository!存储SVN服务器的访问控制策略
AuthzSVNAccessFile D:\SVN\svnaccessfile.txt
#For any operations other than these, require an authenticated user.匿名用户只有读权限 登录用户有写权限
#在使用AcessFile时如允许匿名访问仍需这样写
Require valid-user #Only valid users are allowed to access the URL
重启Apche服务器即可,在浏览器输入: 验证配置。
注意:这样的配置目前还不能用Apache Monitor去启动服务,必须去命令行只Apache安装目录,输入httpd命令才能正常启动~
SVN的使用可以参看我的另外一篇文章:
SVN 使用心得 !期待支持Apache 2.2.4 的Exe版本的SVN的发布。
另外,给大家推荐一个很好的学习和使用SVN的网站:。是我目前见到的国内的学习SVN最好的网站,相信使用SVN碰到的大部分问题在其中都可以找到合适的解决方法的。尤其推荐: ,里边有非常详细的SVN的安装配置以及使用说明。