一、搭建准备
1. 下载httpd-2.2.25-win32-x86-no_ssl.msi
二、SVN配置
SVN安装时选择 Apache 2.2.x Modules,Apache 2.4.x目前没有msi安装版本只有非官方的VC编译版本。我自己本地的SVN安装路径是D:\SVN\Subversion
安装SVN完成后,使用CMD命令建立版本库:
svnadmin create F:\Workspace\SVN\svn_repo
使用notepad++打开svn_repo\conf\passwd,在[users]下添加svn访问用户名和密码:
[users]
root = root
打开svn_repo\conf\svnserve.conf,启用
### users have read and write access to the repository.
anon-access = read
auth-access = write
### The password-db option controls the location of the password
password-db = passwd
创建svn为服务命令:
sc create svnserve binpath= "\"D:/SVN/Subversion/bin/svnserve.exe\" --service -r \"F:/Workspace/SVN/svn_repo\"" displayname= "Subversion" depend= tcpip start= auto
创建后启动svnserve:
net start svnserve
现在就已经可以使用TortoiseSVN客户端就可以通过svn://127.0.0.1/的方式访问到svn了。
三、Apache配置
Apache安装完成后会出现一个小托盘图标,可以对本地的apache服务进行管理,我自己本地的Apache安装路径是D:\Java\Apache\Apache2.2.25-x86。先暂停apache服务,备份整个Apache目录。再将D:\SVN\Subversion\bin目录下的mod_dav_svn.so、mod_authz_svn.so拷贝到D:\Java\Apache\Apache2.2.25-x86\modules
用notepad++打开conf/httpd.conf。
在大概第47行的地方可以修改Apache端口,默认是80端口。
#Listen 12.34.56.78:80
Listen 80
在LoadModule里启用找到mod_dav.so启用它,在后面添加2行
### 需要启用的模块
LoadModule dav_module modules/mod_dav.so
### 需要添加的2行
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
再在文件的最后一行添加svn的配置
<Location /svn>
DAV svn
### SVN版本库父目录
SVNParentPath F:/Workspace/SVN/
### http访问SVN目录权限控制文件路径,后面自己手动添加即可
AuthzSVNAccessFile F:/Workspace/SVN/htpaccess
### 需要安全验证
Require valid-user
AuthType Basic
AuthName "Server requires validate"
### 用户验证文件 htpasswd.exe生成
AuthUserFile F:/Workspace/SVN/htpasswd
</Location>
用户验证文件需要使用htpasswd.exe生成
D:\Java\Apache\Apache2.2.25-x86\bin>htpasswd -mc "F:\Workspace\SVN\htpasswd" root
D:\Java\Apache\Apache2.2.25-x86\bin>htpasswd -m "F:\Workspace\SVN\htpasswd" packdrift
-m 使用md5加密 -c 创建新文件 htpasswd 文件名
添加第N个用户时-c参数就不需要了。
新建目录http-SVN权限控制文件:F:\Workspace\SVN\htpaccess,直接编辑添加以下内容。
[/]
* = r
[svn:/]
root= rw
packdrift = rw
保存后重新启动apache服务,就已经可以通过Http来访问SVN了:http://localhost/svn/svn_repo