Apache2.2.8 + svn-1.4.6安装配置实录
一、准备工作
1.下载apache2.2.8
下载的地方很多,我选择的是天空下载站 http://www.skycn.com/soft/41662.html
2.下载svn-win32-1.4.6.zip :
注意要选择 Subversion 1.4.6 Win32 binaries for Apache 2.2.x. 这款
二、安装
第一步,安装Apache2.2.8,下载后直接安装就可以了,安装过程唯一要注意的地方80端口不要被占用。
第二步,安装Subversion1.4.6,直接解压缩svn-win32-1.4.6.zip即可使用。
我安装的路径分别是: apache:D:\Apache22 SVN:D:\svn
二、整合
第一步,拷贝 \svn\bin\ 目录下mod_dav_svn.so,mod_authz_svn.so和libdb44.dll,intl3_svn.dll拷贝至\Apache2.2\modules
注意两个dll一定要拷贝过去,开始没有拷贝这两个dll文件,导致apache始终不能加载 mod_dav_svn.so
第二步,打开Apache安装目录下的httpd.conf文件,找到LoadModule dav_module modules/mod_dav.so(83行)
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
第三步,建立SVN版本库根目录 我的根目录:D:\svn\SVNSource
第四步,在这个文件的最后,追加如下语句:
<Location /svn> DAV svn #SVNListParentPath on SVNParentPath D:\svn\SVNSource </Location>
第五步,创建仓库 进去svn/bin目录 执行 svnadmin create D:\svn\SVNSource\test 命令执行成功之后,会在D:\svn\SVNSource\test下面生成很多的文件和目录。
第六步,测试运行 重新启动Apache Server 在浏览器中输入网址: http://localhost/svn/test/ 这时候,看到页面显示: Revision 0: / Powered by Subversion version 1.4.6 (r19776). 安装成功,接下来将进行权限设置。
三、svn权限设置
第一步,修改上面第四步的内容为:
<Location /svn> DAV svn #SVNListParentPath on SVNParentPath D:\svn\SVNSource ### apache auth begin # how to authenticate a user AuthType Basic AuthName "Subversion repository" #保存用户名和密码,这个文件需要用Apache的htpasswd工具创建 AuthUserFile D:\svn\apache_authz Require valid-user ### apache auth end ### svn auth begin # our access control policy #保存用户访问的权限策略 #AuthzSVNAccessFile D:\Program Files\svn\svn_authz # authentication if necessary #Satisfy Any ### svn auth end </Location>
第二步,用htpasswd工具创建apache_authz 文件
进去apache22/bin目录 执行 htpasswd -c D:\scv\apache_authz test
-c 表示创建文件,然后,会提示输入两次密码,以后再加用户就不需要用-c了。
第三步,下面建立控制用户访问权限的文件svn_authz
在D:\svn中新建一个记事本文件,输入下面的内容:
[groups] g_vip = improve everyone = @g_vip [SVNSource:/] //这表示,仓库SVNSource的根目录下的访问权限 @g_vip = rw [SVNSource:/xc] //SVNSource仓库下test目录的访问权限 @g_vip = rw // 如果在前面加上@符号,则表示这是个群组权限设置
好,配置完成,重新启动Apache server
在浏览器地址栏中再次输入:http://localhost/svn/test/
SVN配置成服务启动
4.1启动的服务与客户端检出的关系:
4.1.1 如果启动的服务指向一个具体的版本库,如红字部分描述:
sc create SVNService binpath= "D:\Subversion\bin\svnserve.exe --service -r D:/SVN/svntest" displayname= "SVNService" depend= Tcpip start= auto
则客户端检出的地址应为:svn://192.168.0.1/
4.1.2 如果启动的服务指向的是多个版本库的父目录,如红字部分描述:
sc create SVNService binpath= "D:\Subversion\bin\svnserve.exe --service -r D:/SVN" displayname= "SVNService" depend= Tcpip start= auto
则客户端检出的地址应为:svn://192.168.0.1/svntest
其中,sc是windows自带的服务配置程序,参数binPath表示svnserve可执行文件的安装路径,由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成\"
--service参数表示以windows服务的形式运行,--root指明svn repository的位置,service参数与root参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。
displayname表示在windows服务列表中显示的名字, depend =Tcpip 表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。
若要卸载svn服务,则执行 sc delete svnserve 即可