svn+apace安装使用记录
公司想要实现能够通过web的方式来访问svn。所以让我研究研究,经过两周时间断断续续的研究整理。最终成功通过web方式访问svn
目的:
通过web方式访问svn
环境:
1.win7,32位下
2.apache2.2系列。httpd-2.2.25-win32-x86-no_ssl。。。
下载地址:
http://apache.fayea.com/apache-mirror//httpd/binaries/win32/
3.svn1.6系列。Setup-Subversion-1.6.6.msi
下载地址:
步骤:
1.安装svn和apache和svn客户端(客户端我随便安装一个版本都没问题http://tortoisesvn.net/downloads.zh.html)
2.安装完后
创建资源库cmd下。svnadmin create d:/svn
配置SVN服务
在适合的地方新建一个文件夹,用于存放你的第一个SVN版本仓库。进入新建的文件夹,在空白地方右键选择“TortoiseSVN”--->“在此创建版本库”,则在该文件夹下会自动生成几个文件夹和若干个文件,我们不需要对这个文件夹再做其他操作了,如果各位感兴趣可以去查一下每个文件夹的用途。
将SVN服务器配置成一个开机自动启动的服务,方便每次开机时可以自动开启此服务。打开CMD,进入到SVN服务器Subversion的bin目录下,执行如下命令:
sc create subversion_service binpath= "c:\subversion\bin\svnserve.exe --service -r 你的版本仓库的目录" displayname= "Subversion Repository" depend= Tcpip
(注意:以上命令在每个“=”符号之后都有一个空格,请各位博友看清楚哈)
然后启动该服务,我们的SVN服务器就运行起来了。
3.整合操作
a.首先检查D:\Program Files\Apache Software Foundation\Apache2.2\modules目录下是否存在mod_authz_svn.so和mod_dav_svn.so两个文件,否则,将D:\Program Files\Subversion\bin目录下的mod_authz_svn.so和mod_dav_svn.so复制到D:\Program Files\Apache Software Foundation\Apache2.2\modules
b.其次检查D:\Program Files\Apache Software Foundation\Apache2.2\bin目录下是否存在libdb44.dll,libeay32.dll和ssleay32.dll三个文件,否则将D:\Program Files\Subversion\bin目录下的libdb44.dll,libeay32.dll和ssleay32.dll三个文件复制到D:\Program Files\Apache Software Foundation\Apache2.2\bin
c.修改D:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf配置文件,将#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最后。在该文件的最后增加如下单库模式配置方法
- <Location/svn>
- DAV svn
- SVNPath F:/svn
- AuthType Basic
- AuthName "Subversion repositories"
- AuthUserFile "D:/Program Files/Apache Software Foundation/Apache2.2/conf-svn/passwd"
- Require valid-user
- </Location>
注意:SVNPath F:/svn是TortoiseSVN工具创建的Repository
e.密码生成,使用Apache自带的htpasswd工具,生成密码文件(需要创建D:\Program Files\Apache Software Foundation\Apache2.2\conf-svn目录)cmd命令模式中使用如下命令:D:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd -cmb ../conf-svn/passwd test test创建了一个账号为test,密码也为test的账户。
4、保存httpd.conf文件,启动Apache,单库模式的访问地址:http://localhost/svn,第一次访问时提示输入用户名密码。使用htpasswd命令中设置的用户名 密码访问。
注意事项:今天晚上在自己电脑上重新用上面的方法在本本上装,装完后,启动,访问http://localhost/svn,输入账号密码后,却报Could not open the requested SVN filesystem异常,发现这个异常是因为TortoiseSVN的版本过高造成的,创建的资源库无法访问。
解决办法:cmd命令模式进入svn安装目录的bin目录中D:\Program Files\Subversion\bin>svnadmin create f:/svn。创建好资源库,再访问http://localhost/svn,OK。
5.扩展:svn权限设置
svn使用apache的权限管理对档案库及目录进行读写管理
修改上面第三步的内容为:
<Location /svn>
DAV svn
#SVNListParentPath on
SVNParentPath d:/svn
### apache auth begin
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile D:/Subversion/apache_authz (保存用户名和密码,这个文件需要用Apache的htpasswd工具创建)
Require valid-user
### apache auth end
### svn auth begin
# our access control policy
AuthzSVNAccessFile D:/Subversion/svn_authz (保存用户访问的权限策略)
# authentication if necessary
Satisfy Any
### svn auth end
</Location>
用htpasswd工具创建apache_authz 文件,
建立保存用户名和密码的文件
htpasswd -cm D:/Subversion/apache_authz username1
-c 表示创建文件,-m表示对密码用md5加密
然后,会提示输入两次密码,以后再加用户就不需要用-c了,直接用-m即可。
更改用户密码:
htpasswd -m D:/Subversion/apache_authz username1
删除用户(要用大写的 D ):
htpasswd –D D:/Subversion/apache_authz username1
下面建立控制用户访问权限的文件svn_authz
在D:/Subversion中新建一个记事本文件,输入下面的内容:
[groups]
committers = paulex, richard
developers = jimmy, michel, spark, sean
[myproject:/] //这表示,仓库myproject的根目录下的访问权限
@developers = rw
[myproject:/src] //myproject仓库下src目录的访问权限
@developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置
r 表示读权限
w 表示写权限
AuthzSVNAccessFile 指向的是 authz 的策略文件,详细的权限控制可以在这个策略文件中指定。访问文件 accesspolicy.conf 的语法与svnserve.conf和 Apache 的配置文件非常相似,以(#)开头的行会被忽略;在它的简单形式里,每一小节命名一个版本库和一个里面的路径;认证用户名是在每个小节中的选项名;每个选项的值描述了用户访问版本库的级别:r(只读)或者rw(读写),如果用户没有提到或者值留空,访问是不允许的; * 表示所有用户,用它控制匿名用户的访问权限;@符号区分组和用户。
我自己的文件填写内容
[svn:/] //这表示,仓库myproject的根目录下的访问权
限
test = rw
6.遇到的问题:
首先,svn服务不能够创建,创建的规则一定要弄对,写错就不能创建
其次,svn和apache不匹配造成apache启动不起来(执行后启动不起来c.修改D:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf配置文件,将#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最后。在该文件的最后增加如下单库模式配置方法)
结果:切记切记svn一定要和apache相匹配,不然会造成启动不起来,而且不能使用一键安装的apache(Wampserver2.4-x86.exe)
参考资料:
apache2.2+svn1.6+TortoiseSVN在windows环境搭建总结http://blog.wujiumei.com/2013/09/24/apache2-2svn1-6tortoisesvn%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E6%80%BB%E7%BB%93/
APACHE实现SVN库WEB访问(XP SP2环境)http://blog.sina.com.cn/s/blog_6e5eacff0100opuh.html
Apache2.2.11和SVN1.6.1搭建svn版本控制平台(windows环境)http://blog.csdn.net/buffet518/article/details/4165870
Win7下搭建外网环境的SVN服务器http://www.cnblogs.com/crazypebble/archive/2011/07/30/2119258.html
svn如何安装,svn如何配置,svn安装配置http://jingyan.baidu.com/article/fec7a1e52ef3721190b4e7a1.html
浙公网安备 33010602011771号