1.准备
操作系统 :WINDOWS 2003
Apache 2.0.59
svn-win32-1.4.6.zip
TortoiseSVN-1.4.8.12137-win32-svn-1.4.6.msi
2安装
2.1安装Apache
(1)下载Apache
地址http://httpd.apache.org/download.cgi
注意:Apache低于2.0.54的Windows版本的存在编译问题,低于2.0.54的版本不能与Subversion 1.2一起工作。
(2) 安装
注意:如果你已经有了IIS或其他监听80段口的程序,安装会失败,如果发生这种情况,直接到程序的安装目录/Apache Group/Apache2/conf,打开httpd.conf。编辑文件的Listen 80为其他可用的端口,例如Listen 8008,然后重新启动-这样就不会那个问题了,或者将其它应用的端口进行改之。
(3)检查
安装完成后浏览 http://localhost:8008/ 若成功,可看到apache欢迎页面。
2.2安装Subversion
(1)下载 Subversion
地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
在本实例中,选择下载svn-win32-1.4.6.zip此版本.
(2)安装
将svn-win32-1.4.6.zip解压到安装程序的目录下。
3 配置Apache
步骤1 从svn-win32-1.4.6/bin 中将mod_authz_svn.so mod_dav_svn.so复制到Apache Group/Apache2/modules下,再将svn-win32-1.4.6/bin目录下的所有dll文件全部复制到Apache Group/Apache2/bin文件夹下。
步骤2 找到Apache Group/Apache2/conf/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
进行如上后续修改后完成了SVN+Apache之间的WebDav的工作了。重启Apache以后可看到如下图:
这是安装最终的图,图中状态栏显示Apache/2.0.59(Win32) SVN1.4.6 DAV/2是由于还安装了mod_python,此步骤稍后将讲解,如上安装好后应显示为Apache/2.0.59(Win32) SVN1.4.6 DAV.
4 配置SubVersion
1.2.1建立版本库
首先建立一个用于存在SVN项目的版本库,本例中在D盘驱动器中建立目录var/svnhome,可通过如下命令建立版本库,当然如果你需要建立多个版本库只需将名称进行换名即可。
首先以cmd命令窗口进入svn-win32-1.4.6/bin目录结构下,输入:
>svnadmin create --fs-type fsfs D:/var/svnhome/projects回车,等待提示创建完成;完成后则进行相关密码以及权限设置。
1.2.2 设置密码文件
以cmd命令窗口进入路径Apache Group/Apache2/ bin目录下,然后输入:
> htpasswd -c D:/var/svnhome/projects/conf/<filename> <username>
本例中filename名称使用passwordfile,username名称使用admin(注意filename无需后缀名),这样便可在var/svnhome/projects/conf目录下创建一个用户名为admin的passwordfile文件,此文件将在后面配置权限所用。
此后添加用户,可使用如下命令:
>htpasswd filename <username>
删除用户,使用如下命令:
>htpasswd -D filename <username>
若对密码不想加密可使用-cp参数,windows平台下默认是MD5加密。
1.2.3 设置权限文件
用文本编辑器在var/svnhome/projects/conf路径下生成名为svnaccessfile的文件,此名称将在Apache Group/Apache2/conf/httpd.conf配置文件中所用,此处不使用扩展名。编辑一下内容:
[groups]
committers = admin
developers = Allen
[/]
* = r
@developers = r
@committers = rw
[projects:/]
@ developers = rw
基本含义是根目录下任何人有读权限,committers组有读写权限;admin对projects读写权限,而developers组只有读的权限。
备注: 如果有中文路径,那要把文件存成UTF8格式,不建议使用中文路径,这在编程当中是严格禁止的.
1.2.4 配置服务
编辑Apache Group/Apache2/conf/httpd.conf文件,添加下面代码。
<Location /svn>
DAV svn
SVNPath "D:/var/svnhome/projects"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile "D:/var/svnhome/projects/conf/passwordfile"
AuthzSVNAccessFile "D:/var/svnhome/projects/conf/svnaccessfile"
Require valid-user
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>
备注: 如果使用<Location /svn/>可列出D:/var/svnhome/projects 下的版本库,若为<Location /svn>则不能访问http://127.0.0.1/svn下的项目,而只能这样访问,如http://127.0.0.1/svn/<projectname>
配置内容说明
设置 |
解释 |
<Location> |
意思是Subversion版本库的URL是http://ipaddress/svn/ |
DAV svn |
告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。 |
SVNPath |
告诉Subversion需要查看的版本库位于D:/var/svnhome/projects之下 |
AuthType Basic |
激活基本认证,就是用户名/密码 |
AuthName |
用来说明弹出要求输入认证信息的对话框信息,可以使用中文. |
AuthUserFile |
指定使用认证密码的文件 |
AuthzSVNAccessFile |
位置Subversion版本库的访问控制权限的路径文件 |
Require valid-user |
指定只有输入了正确的用户/密码的用户可以访问URL |
(另外如果当此时通过访问http://127.0.0.1:8008/svn提示403 Forbidden错误的信息的话,主要是由于svnserve.conf此文件中的[general]内容password-db = passwordfile内容加入(或者将原来的#去掉,同时将passwd修改你所创建的密码文件,本例中为passwordfile),也可以实现根目录的访问了!)
备注:
这样做,还是会报403错误,将AuthzSVNAccessFile "D:/var/svnhome/projects/conf/svnaccessfile"注释就好了,可能是访问控制权限的路径文件有问题。
1.25 安装TortoiseSVN(可选)
此工具是客户端软件,主要可以用于从服务器上check版本库项目以及updata与commit等相关SVN的管理操作,其下载地址为:http://tortoisesvn.net/downloads,另外还可以下一个语言包,都在给其的subversion官方网站上能下到.
备注:
装了TortoiseSVN后,导致我的XMLSPY 2005出错了,后来下了个XMLSPY 2006
5 简单应用
1) Import
选择一个文件夹,点击右键,选择“TortoiseSVN”->“Import”
弹出一框,在URL of repository输入 http://localhost:8008/svn,点OK
就会将该目录下的文件信息”发送”到版本库。
2) SVN CheckOut
点击右键,选择“SVN CheckOut”
3) Commit
如果文件有修改,选择“TortoiseSVN”->“Commit”