Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7581009 建立时间:2006年5月29日 |

| |
[Subversion]Apache2+SVN 软件技术, 电脑与网络
lhwork 发表于 2006/6/22 17:39:58 |
由于 binzy 无法在公司 check out DiggMore 的 CVS,所以下午的时候商量在我的机器上装一个 Subversion,而且这个 Subversion 中的仓库必须可以通过 HTTP 方式操作,晚上回来之后开始折腾,现记录如下。
先安装 Apache2,之前的还是 Apache 1.3.x:
# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc --enable-so --enable-rewrite --enable-dav --enable-dav-fs# make# make install
安装 Apache2 的同时还连累了 PHP,只好也一起重新编译。
然后安装 Subversion:
# ./configure --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-apxs=/usr/local/apache2/bin/apxs# make# make install
修改 httpd.conf,加入:
LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so
这两个 module 是安装 SVN 时带的。
创建 SVN 仓库:
svnadmin create /path/to/diggmore
注意:需要把仓库的属主、权限设置成 apache 中的 User/Group 可读写访问。
利用 apache 自带的 htpasswd 生成可访问用户的列表文件,这个文件中包含了用户名及其 MD5 之后的密码:
# htpasswd -cm /etc/svn-auth-file nioNew password: *****Re-type new password: *****Adding password for user nio
如果还需要添加新的用户,继续使用:
# htpasswd -m /etc/svn-auth-file binzy
注意,这一次不再使用 -c 参数,这个参数是用来新建文件的,所以第二个用户开始就不需要这个参数了,否则会重新创建文件,把第一个用户给去掉了。
接下来做一个简单的配置,使得任何人都可以有读的权限,但只有 diggmore 开发成员可以写,这需要创建一个访问控制文件,假设为 /etc/svn-access-file。文件内容大概如下:
[/]* = r[groups]diggmore = nio, binzy, easy, vicki, freeman, rainx[diggmore:/]@diggmore = rw
第一、二行表示任何人都可以读 SVN 仓库,[groups] 用来定义组,我这里定义了一个 diggmore 组,组成员包括 nio,
binzy, ….,[diggmore:/] 部分表示 diggmore 仓库中的权限定义,组 diggmore
拥有这个仓库的读写权限。OK,就是这么简单。
现在,回到 httpd.conf,我们还要加一些配置:
<Location /diggmore> DAV svn # 指定仓库路径 SVNPath /path/to/diggmore # 指定使用的访问控制文件 AuthzSVNAccessFile /etc/svn-access-file # 首先尝试匿名访问,只在有需要的时候才使用基本验证方式验证用户权限 Satisfy Any Require valid-user # 使用基本验证 AuthType Basic AuthName "Nio's SVN" # 验证使用的用户列表文件 AuthUserFile /etc/svn-auth-file</Location>
好了,就这些了,最后别忘了重启 apache 服务。现在你可以通过 http://…./diggmore 的方式访问 SVN 了,当然我的配置有细微差别,所以访问 diggmore 的 SVN,使用这个地址:
http://www.infor96.com/svn/diggmore/
客户端亦相同。现在看着还比较简单,有时间装一个 Trac 或其它,就可以方便地通过浏览器进行代码浏览了。
|
|
|