今天接着昨天的内容讲Subversion的安全配置。在上一讲中我们在Apache的httpd.conf文件里加入了这样一节: <Location /svn> DAV svn SVNParentPath e:\SVN AuthType Basic AuthName "Subversion repositories" AuthUserFile passwd #AuthzSVNAccessFile svnaccessfile Require valid-user </Location> 下面我来解释一下这些配置信息用途:
<Location /svn>
说明我们所有的代码仓库在/svn这个虚拟目录下
DAV svn
说明Apache会使用svn这个module来解析这个虚拟目录
SVNParentPath e:\SVN
说明所有的代码仓库都在本地硬盘的e:\SVN下
AuthType Basic
使用最基本的认证校验,用户名/密码
AuthName "Subversion repositories"
说明在认证对话框弹出的时候,对话框的标题显示,你可以把它修改成你想要的任何提示信息,比如:AuthName "Warning"等等
AuthUserFile passwd
说明我们使用的access list文件的名字,在上一讲中我们建立的文件名字是passwd,所以这里是passwd。如果你建立的文件名字是其他的,这里要作相应的改动
AuthzSVNAccessFile
说明svn自己控制的access list文件,这个文件很重要,可以丰富svn的安全配置,在下面会讲到
Require valid-user
说明只有输入正确的用户名/密码才能访问
上述的配置只能是最简单的安全配置,如果你想拥有更强大的安全配置,就需要加入一些东西了。比如:
这里再说说SVNParentPath,配置了SVNParentPath,以后每次在根目录下面加入新的repository就不需要再重新配置Subversion和Apache了,自动获取了根目录的配置信息,很方便。然而这也引发了另外一个问题,当你在浏览器地址栏里输入http://youserver/svn/的时候,服务器会报错,提示你没有权限访问访问这个url,我们想要的效果是浏览到这个url时能够把根目录下的所有的repository列出来。完成这个工作需要写点代码了,使用的工具可以是很多,这里使用php,当然我想用perl或者python一定是没有问题。首先要安装php,使apache支持php. 以下是参考了shg918的文档,在此表示感谢!
Ok,配置完毕,现在Apache可以支持php了。现在用文本编辑器编写一个php文件,保存为svn_index.php,内容如下:
上述php文件中svnparentpath = "e:/svn";需要注意,你的subversion的代码仓库的根目录可能并不在e:/svn,请修改和你自己设置一样的路径。更改Apache的配置文件http.conf文件,把#LoadModule rewrite_module modules/mod_rewrite.so前面的注释去掉。然后在文件末尾加上如下几句:
RewriteEngine on
RewriteRule ^/svn$ /svn_index.php [PT]
RewriteRule ^/svn/$ /svn_index.php [PT]
RewriteRule ^/svn/index.html$ /svn_index.php [PT]
好了,请从新在浏览器地址栏中输入http://youserver/svn ,你会发现Apache会把当前Subversion根目录下的所有代码仓库列出来了。如图: 今天就讲到这里吧,明天继续讲解Subversion的SSL加密连接的设置。
posted on 2005-02-09 10:46 doudou 阅读(12399) 评论(29) 编辑 收藏 网摘 所属分类: 原创(开源技术和.Net)
昵称: [登录] [注册]
主页:
邮箱:(仅博主可见)
验证码: 看不清,换一个
评论内容:
登录 注册
[使用Ctrl+Enter键快速提交评论]
Powered by: 博客园 Copyright © doudou