版权声明:本文为博主原创文章,未经博主允许不得转载。
下面是我配置SVN服务器的过程,现在把我所配置的方法,记录下来,以供其他有需要的朋友参考,需要改进的地方,请指教!
一 环境
操作系统:windows2003 server
Apache:httpd-2.2.22-win32-x86-no_ssl.msi
subversion: Setup-Subversion-1.7.8.msi
TortoiseSVN: TortoiseSVN-1.7.11.23600-win32-svn-1.7.8.msi
二 安装步骤
1.安装Apache
如果您已经拥有Apache的安装程序,那么你就可以双击安装程序开始安装。请确保你输入正确的服务器URL(如果你的服务器没有域名,你可以直接输入IP地址,邮箱可以随便写一个)。我建议你将Apache安装成 for all Users,on Port 80,as a service。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下的Apache Group"Apache2"conf目录中找到文件httpd.conf,将其中的Listen 80改成一个不用的端口,比如Listen 8888。然后重新运行这个安装程序,这次应该不会再有问题了。
如何 测试Apache是否安装成功?
你可以在你的浏览器中键入 http://loccalhost,如果显示“It works!”,那么你的Apache就安装成功了。
2.安装Subversion并配置
a,双击Subversion的安装程序来完成安装,安装完毕之后。我们进入subversion文件目录中(默认安装位置是:c:\Program Files\Subversion), 在该目录中的bin文件夹中找到mod_dav_svn.so 和 mod_authz_svn.so,将它们拷贝到Apache的modules目录(通常为c:\Program Files\Apache Group\Apache2\modules)下。然后将Subversion/bin/ 目录下的 libdb44.dll、libeay32.dll、以及 ssleay32.dll文件 复制到 Apache目录 底下的 bin 目录下。
b,打开Apache的配置文件httd.conf(通常为c:\Program Files\Apache Group\Apache2\conf\httd.conf),修改以下内容:
- #LoadModule dav_fs_module modules/mod_dav_fs.so
- #LoadModule dav_module modules/mod_dav.so
- 修改为:
- LoadModule dav_fs_module modules/mod_dav_fs.so
- LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so #LoadModule dav_module modules/mod_dav.so 修改为: 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
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
*注意: 这两行的代码顺序不能错,以免带来不必要的麻烦。
C, 然后在该文件最末进行相应的配置,以便客户端 TortoiseSVN和浏览器知道如何访问:
(注意:记得在c:\下建立文件夹(c:\svn))
- <Location /svn>
- DAV svn
- SVNParentPath C:\svn
- AuthType Basic
- AuthName "test"
- AuthUserFile c:\svn\passwd
- AuthzSVNAccessFile C:\svn\svnaccessfile
- Require valid-user
- </Location>
<Location /svn> DAV svn SVNParentPath C:\svn AuthType Basic AuthName "test" AuthUserFile c:\svn\passwd AuthzSVNAccessFile C:\svn\svnaccessfile Require valid-user </Location>
每一行的说明如下:
- <Location /svn> #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
- DAV svn # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
- SVNParentPath C:\svn #告诉Subversion在目录C:\svn下寻找版本库
- AuthType Basic #启用基本的验证,使用用户名/密码验证
- AuthName "test" # test为版本库
- AuthUserFile c:\svn\passwd #passwd问密码和用户文件,用来验证用户的用户名及密码
- AuthzSVNAccessFile C:\svn\svnaccessfile #权限控制文件,限定各个用户或组在版本库中目录的访问权限
- Require valid-user #限定用户只有输入正确的用户名及密码后才能访问这个路径
<Location /svn> #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库 DAV svn # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块 SVNParentPath C:\svn #告诉Subversion在目录C:\svn下寻找版本库 AuthType Basic #启用基本的验证,使用用户名/密码验证 AuthName "test" # test为版本库 AuthUserFile c:\svn\passwd #passwd问密码和用户文件,用来验证用户的用户名及密码 AuthzSVNAccessFile C:\svn\svnaccessfile #权限控制文件,限定各个用户或组在版本库中目录的访问权限 Require valid-user #限定用户只有输入正确的用户名及密码后才能访问这个路径
d,下面,我们就来创建passwd文件,你打开命令行(DOS窗口),将当前目录切换到apache2目录(通常为c:\Program Files\Apache Group\Apache2),然后打入以下命令以创建文件:
- bin\htpasswd -c passwd <username>
- 比如: bin\htpasswd -c c:\svn\passwd admin
- 命令分析:
- c:\svn\passwd 表示会在:c:\svn目录下创建一个passwd文件
- admin 表示用户名
bin\htpasswd -c passwd <username> 比如: bin\htpasswd -c c:\svn\passwd admin 命令分析: c:\svn\passwd 表示会在:c:\svn目录下创建一个passwd文件 admin 表示用户名
然后输入两次密码,如下图所示:
创建方法如下:
- bin\htpasswd -b c:\svn\passwd test test
bin\htpasswd -b c:\svn\passwd test test
此命令执行Apahce的bin目录下的htpasswd.exe来创建一个密码文件,创建完成之后,重启Apache服务。
e,权限控制文件创建
在c:\svn目录下创件svnaccessfile文件,然后打开进行配置,可以参照下面的示例:
- #组配置 组 = 用户名
- [groups]
- @admin = admin
- @user = test #test用户还需要按照上面d步骤来创建它和它的密码
- # 为所有库指定默认访问规则
- # 所有人可以读
- [/]
- * = r
- # 为test版本库制定权限
- #admin组拥有读写权限
- #user组只有读取权限
- [test:/svn/test]
- @admin = rw
- @user = r
#组配置 组 = 用户名 [groups] @admin = admin @user = test #test用户还需要按照上面d步骤来创建它和它的密码 # 为所有库指定默认访问规则 # 所有人可以读 [/] * = r # 为test版本库制定权限 #admin组拥有读写权限 #user组只有读取权限 [test:/svn/test] @admin = rw @user = r
来源:https://www.cnblogs.com/nimorl/p/5088056.html