Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607104
  • 博文数量: 129
  • 博客积分: 8026
  • 博客等级: 中将
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-21 14:39
文章分类

全部博文(129)

文章存档

2011年(1)

2007年(26)

2006年(102)

我的朋友

分类: 系统运维

2006-04-29 14:32:32

使用svn已有一段时间了,今天自己第一次在redhat AS4+apache上配,却不那么顺利..


1、编译安装源码包 apache2.2+subversion1.3.1

a、apache

./configure --prefix=/web/apache --enable-mods-shared=all

make && make install

b、subversion

./configure --with-apxs=/web/apache/bin/apxs --with-apr=/web/apache --with-apr-util=/web/apache

make && make install

提请注意的是:没有加上后面两个参数,服务器会出现500错误,apache的error_log显示如下:
 

Could not fetch resource information. [500, #0]

Could not open the root of the repository [500, #22]

Can't set position pointer in file '/web/www_root/svn/test/db/revs/0': Invalid argument [500, #22]


2、修改httpd.conf

如没有,添加以下几句(一般编译后会自动修改)

LoadModule dav_module modules/mod_dav.so

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

以下这段开启svn的虚拟目录,可以放在某个虚拟主机配置段内

DAV svn

#SVNPath "/web/svn/project1" #如果你想对每个项目单独配置,使用该项

SVNParentPath /web/svn #设定一个根,所有项目均放在此目录下

3、创建仓库

cd /web/svn

svnadmin create project1

更改权限:改变/web/svn目录为apache运行用户有权写入

chmod -R 757 /web/svn

4、控制存取权限
段加入
 

# 存取权限控制文件所在地

AuthzSVNAccessFile /etc/svn.access

# 先尝试匿名操作,如有必要再转向用户认证

Satisfy Any

Require valid-user

#验证方式

AuthType Basic

AuthName "tim's SVN"

AuthUserFile /etc/svn.passwd

控制文件/etc/svn.access格式

[groups]

AdminGroup = tim,stardust

GuestGroup = guest

[/project1]

@AdminGroup = rw

@GuestGroup = r


密码文件/etc/svn.passwd使用htpasswd生成

/web/apache/bin/htpasswd -cbm /etc/svn.passwd username password

m参数表示使用md5加密,
可以以同样方式增加多个用户,之后添加的不需用c参数


5、问题及解决
a.服务器出现 HTTP 500错误,重编译subversion ,加上 --with-apr=/apache路径 及 --with-apr-util=/apache路径
b.客户端使用TSVN时出现 svn: PROPFIND of '/svn/project1': 301 Moved Permanently,修改httpd.conf,注释LoadModule dir_module

modules/mod_dir.so一行,类似错误还有可能是与mod_rewrite冲突,导致TSVN生成不识别的路径,修改相应的rewrite_rule即可
c.出现Can't create directory '/web/svn/projecct1/db/transactions/0-1.txn': Permission denied ,原因是权限不足,给相应目录加上

权限(chmod -R 757 /web/svn)


6、其它认证方式
可以采用多种其它方式的验证,以后再去试了
如:
SSL,mod_auth_sspi,mod_auth_mysql等

阅读(4591) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~