注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

简约男人

简约,不能简单

 
 
 

日志

 
 
关于我

一个过分渴望被理解的人其实就是一个软弱的人, 勇往直前的力量来自斩钉截铁的决心,不是来自别人的理解.

网易考拉推荐

访问SVN版本库403 Forbidden的解决办法——Apache Basic模式  

2010-07-24 19:21:27|  分类: 开发工具 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Windows下Apache Basic模式SVN版本库需要依赖的三个文件

1、Apache的httpd.conf文件
格式为(以单目录版本库为例)
<Location /svn>
    DAV svn
    SVNListParentPath on
    SVNParentPath D:/SVN
 # 指定版本库服务器授权类型
    AuthType Basic
 # 指定版本库服务器授权名称 
    AuthName "Subversion repository"
 # 指定用户文件位置
    AuthUserFile D:/SVN/passwd.txt
 # 指定用户权限配置文件位置
    AuthzSVNAccessFile D:/SVN/accessfile.txt
 # 强调通过认证的用户可以访问
    Require valid-user
 # 指出可以使用*表示所有人(可以不是用户文件中指定的用户)
    Satisfy Any
</Location>

此文件语法存在错误会导致Apache服务启动不成功,网上有说表示路径斜杠用成Windows类型的反斜杠不对,是没有根据的,在Windows下随便用那种都可以,加不加引号都可以。混用没试过,应该只要Apache服务能够启动就说明是正确的;但是要让配置起效,文件名一定要写对,包括扩展名。

2、用户文件

用户文件需要在命令行下调用Apache的htpasswd程序生成,文件扩展名可以随便取
在命令行下进入Apache的bin目录然输入命令。
生成并添加用户的命令格式:htpasswd -cm  路径+文件名 用户名 密码
添加用户的命令格式:htpasswd -m  路径+文件名 用户名 密码

如果设置对了用户权限配置,还有这个错误就说明访问版本库的用户不拥有相应的访问权限或者用户名和密码不对。

3、用户权限配置文件

明文文本文件,扩展名随便取
配置文件格式为:

# 别名指定段,网上搜不到说明。网上许多大侠对此只字不提,但是一提到SVN配置很有一股好为人师的风度,不知何故。此段的具体应用弄明了后定然补充
[aliases]
 joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

#对用户进行分组的段。如果用户过多,把权限一致的用户分为一组很方便
[groups]
#将用户harry和sally分组到harry_and_sally中
 harry_and_sally = harry,sally
#将harry和sally以及别名组joe表示的所有用户分组到harry_sally_and_joe。分组中存在组间交叉现象,实际使用中不要出现组间交叉现象;我没试过,有兴趣的可以试试。
 harry_sally_and_joe = harry,sally,&joe


# httpd.conf中SVNParentPath或者SVNPath指定目录的下级目录访问权限,[/]表示SVNParentPath或者SVNPath的访问权限。此处的目录一定需要是版本库存在的直接目录或其父目录。
 [/foo/bar]
# 表示harry对此目录有读写的权限
 harry = rw
 &joe = r
# 所有人都没有任何权限
 * =

# 设置用户对版本库的访问权限
 [repository:/baz/fuz]
 @harry_and_sally = rw
# 所有人都有读取权限
 * = r
 
权限配置文件是不是有点不正常啊,发现了没?如果发现了,说明你是一个细心的人,祝贺你!你一定能成为一个优秀的软件工程师。上面同时指定了所有人对版本库存在的目录没有任何权限和harry对此目录有读写权限。此时要涉及到权限分配原则,所有用户对某级目录的访问权限是该用户拥有的对此目录及此目录的所有父目录的最大访问权限。此时上边的问题就明了了,实际情况是harry对此目录有读写权限。权限分配还有另外一个原则,如果某用户对初始目录没有任何访问权限(不设置也表示没有任何访问权限)就不再检测该用户对下级目录是否有访问权限,直接认为其无任何访问权限。初始目录就是配置文件中分配权限的第一段中指定的目录。此处是d:/svn/foo/bar.

网上很多人在给人出点子时都没有意识到这一点,然而网上许多人的问题却都是由这一点引起的。归根到底他们遇到的问题就是没有任何访问权。他们忘了设置某用户对初始目录的访问权限。

如果此文件中有汉字需要使用utf编码,不然会导致此文件读取不成功。

  评论这张
 
阅读(9341)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017