码迷,mamicode.com
首页 > Web开发 > 详细

SVN 1.80 + Apache2.4.4 整合 完全攻略

时间:2015-12-07 11:59:57      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

阅读引导:
 
apache 和 SVN 的整合配置可能会遇到一些问题,本篇提供了几个常见问题的解决方案,仅供参考,
附:  the requested operation has failed  错误解决方案
附: Could not open the requested SVN filesystem 错误的解决方案
附 : authentication failure  和  Password Mismatch 的解决方案
 
apache 和 SVN 关系图
 
技术分享
 
1.下载文件
 
注意:     客户端要和服务端版本一致
 
tortoisesvn 是客户端程序 需要 下载并安装即可
下载地址:  http://sourceforge.net/projects/tortoisesvn/files/?source=navbar
 
英文不好的可以下载一个客户端的中文插件,必须在安装好客户端安装
下载地址: http://downloads.sourceforge.net/tortoisesvn/LanguagePack_1.8.1.24570-win32-zh_CN.msi?download
 
subversion 是 SVN 服务端 是一个压缩包 本篇主要介绍这个压缩包的配置
下载地址: http://jaist.dl.sourceforge.net/project/win32svn/
 
2. 客户端 服务端 apache 的版本选择 (重要)
 
本篇的所有程序版本:
系统: win7-32bit
tortoisesvn: 1.8.0
 
subversion: 1.8.0
apache: 2.4.4 (wamp)
 
wamp 下载地址:   http://www.wampserver.com/en/ 
 
客户端和服务端一定要版本匹配,上面已经说过. 
最重要的就是 服务端要和 apache 相匹配 不然你的apache 是无法启动的
可以在下载的 subversion 里的 README.txt 查看和什么版本的服务器匹配
 
技术分享
 
 
3.subversion 解压后的存放位置
 
推荐存放在 apache 文件的同级目录,
 
技术分享
 
4.配置环境变量
 
需要在 path 中配置 svn  和 apache 的 bin 文件目录
加入以下参数,以个人安装位置为准:
 
D:\wamp\bin\apache\Apache2.4.4\bin;D:\wamp\bin\svn\bin
 
5.svn模块引入
在svn/bin 中有两个文件需要复制到 apache 的 modules 文件夹中
 
技术分享
 
6. apache 与 svn 配置整合
 
修改apache  的配置文件  httpd.conf ;
 
<1 . 引入SVN 的依赖模块

 

   1:  #svn 系统模块
   2:  LoadModule dav_module modules/mod_dav.so
   3:  LoadModule dav_fs_module modules/mod_dav_fs.so
   4:  #svn 自身模块
   5:  LoadModule dav_svn_module modules/mod_dav_svn.so
   6:  LoadModule authz_svn_module modules/mod_authz_svn.so

 

<2. 设置apache 和 SVN 的调用关系

 

   1:  <Location /svn>  
   2:  DAV svn 
   3:  SVNParentPath "D:/www/depot"
   4:  </Location>

 

 

第三行 设置的是SVN 仓库的位置 depot 是父目录,

可以在里面设置子目录, 这只是我的仓库位置,可以根据 需要自行设置

<3. 重启系统  附:  the requested operation has failed  错误解决方案

如果重启系统后, wamp 无法启动 查看apache 的  日志文件 apache_error.log 
最后一行 提示 the requested operation has failed 

出现这种问题请检查如下几个方面 :

(1. 检查服务端 是否支持 apache 版本

(2. 检查是否引入了SVN 的 模块到 apache 的 modules 文件夹

(3. 检查是否正确的修改了环境变量

(3.检查所修改的 apache 配置文件 是否存在语法或者输入错误 

(4. 检查 是否缺少 VSN  的依赖运行环境 可以安装微软的 VC6 和 VC9 支持库 下载地址:  http://www.baidu.com/ 

(5.如果以上都操作正确 问题还没有解决,请重启电脑 ,如果重启也没有解决

可以在 cmd 中 输入以下命令 查看apache 报错的 配置所在的行,定位检查错误

httpd.exe -w -n "wampapache" -k start

wampapache 是指 apache 在系统中的服务的名称,不同的电脑可能会有不同的名称,可以在服务列表中查看

技术分享

找到错误后根据提示自行解决,这里就不深入讲解了,

7.创建仓库

cmd  命令行 执行 : vsnadmin create d:/www/depot/maliro 

depot  是我的仓库 父目录

maliro 是我仓库下的子仓库

vsnadmin 的所有命令 可以 用 vsnadmin help 查看是

创建好的仓库:

技术分享

8. 测试是否可以访问正确的访问仓库

<1. 在浏览器输入 localhost/vsn/maliro   maliro是 子仓库名

    需要注意的是 我这里 已经将 localhost 的 访问目录 指向了我所创建的 D:\www 目录, 具体情在 apache 配置文件里面修改配置项

   成功打开网页后有以下提示:

   maliro - Revision 0: /

<2. 附: Could not open the requested SVN filesystem 错误的解决方案
 
如果打开网页提示 Could not open the requested SVN filesystem 则表示和apache 的整合没有问题 ,但是VSN 没有找到仓库
 
请检查如下方面:
(1.   在 apache  的配置文件中 是否正确的指定了仓库的父路径 
 
技术分享
 
(2. 是否用命令行正确的创建了仓库 而且创建的位置 和配置项一致!
 
9. 设置指定的用户访问仓库
 
<1. 配置 服务器配置文件
 
   1:  <Location /svn>  
   2:  DAV svn 
   3:  SVNParentPath D:/www/depot
   4:   
   5:  AuthZSVNAccessFile "D:\www\depot\authz"
   6:  AuthUserFile "D:\www\depot\passwd"
   7:   
   8:  Satisfy Any
   9:  Require valid-user
  10:   
  11:  AuthType Basic
  12:  AuthName " Welcome to my SVN , But you need input password! (-: "
  13:  </Location>
 
将以前的配置 修改成以上代码
 
第五行 设置权限配置 文件的位置
 
第六行 设置密码文件的 存放位置
 
一般都是 存放在 仓库的父目录下
 
<2. 添加用户
 
在设置的存放权限配置的目录中 创建文件 authz 并键入以下信息
   1:  [maliro:/]
   2:  maliro = rw

maliro:/     //表示设置的用户作用于该子仓库

maliro = rw  //用键值对的形式设置用户和用户的权限 r  --> 读操作  w –> 写操作
 
<2.设置明文密码
 
在指定目录创建文件 passwd 并键入以下信息
 
maliro:111    // 键值对形式设置 maliro的密码为 111
 
<3.设置加密密码
 
在cmd 命令行 输入命令:
 
   1:  htapache -cmb d:/www/depo/passwd maliro 111
 
创建一个经过md5 方式加密的用户密码
注:  命令里的 c 参数是用来创建文件 同时创建加密用户密码 会覆盖以前的passwd 文件
 
最好的使用方式是指定 -mb 参数
 
 
也可以这样创建密码:
 
   1:  htapache -b d:/www/depot/passwd maliro
 
创建一个经过 hash 方式 加密的用户密码
 
<4. 附 : authentication failure  和  Password Mismatch 的解决方案
 
如果访问svn 服务器的时候 不停地让你输入密码, 那么查看 apache_error.log  你会发现有这样一句话
字面意思是没有权限或者口令不正确,
 
分析原因:  口令不正确肯定是存在一个用户,用户的密码不匹配.
 
解决:
 
(1. 检查密码文件是否存在,并且创建了指定用户的密码
(2. 检查apache的配置文件中的 VSN 配置密码文件路径是否正确
(3. 用命令行创建用户的时候是否用了这样的指令 :
 
错误1 :   htapache –c xxxxxxxx maliro
错误2 :   htapache xxxxxxxx maliro
 
可能是因为版本问题,在SVN的高级版本中 用这样的指令创建的加密用户密码 是不能被正确解密匹配的
具体情参考 指令  htapache help
 

SVN 1.80 + Apache2.4.4 整合 完全攻略

标签:

原文地址:http://www.cnblogs.com/zzg521/p/5025425.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!