Chinaunix首页 | 论坛 | 博客
  • 博客访问: 215980
  • 博文数量: 145
  • 博客积分: 3000
  • 博客等级: 中校
  • 技术积分: 1720
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-14 18:42
文章分类

全部博文(145)

文章存档

2011年(1)

2009年(144)

我的朋友

分类: LINUX

2009-07-22 20:19:27

by tangke <>

今天因为有些事情必须要用到apache2 + svn 方式,以前也看过类似的文章,但是一直没有弄的很透。
所以今天静下心来配置一下apache2 + svn

1.安装apache2 + svn
这个比较简单,我们直接使用
apt-get install apache2 libapache2-svn subversion就可以了

2.配置/etc/apach2/httpd.conf

                                                                           
DAV svn
SVNParentPath /svn/
AuthzSVNAccessFile /svn/svn_access_file
AuthUserFile /svn/svn_auth_file
AuthName "welcome to my web site"#开始以为这个不写也可以,但是后来发现会直接打印在/var/log/apache2/error.log文件里面
Require valid-user
AuthType Basic
SVNListParentPath on #这一条可能针对版本不同,可能会引起apache启动不了。

3.配置/etc/apache2/mods-available/dav_svn.load

LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so
这个内容一般默认都有,但是网络上面有人说如果先安装了libapache2-svn,然后再安装apache2的话,可能就没有,没有就没有吧,自己手工输入一下吧。

4.目录结构
/svn/
/svn/project
svnadmin create /svn/project/

5./svn/svn_access_file
Code:

[groups]                                                                                  
# harry_and_sally = harry,sally
admin = test

[/]
* = r
@admin = rw

[project:/]
* = r
@admin = rw


前面的* = r千万不能少,少了就可能会出现
You don't have permission to access /svn/ on this server 这种情况,出现这种情况还有因为/etc/apache2/httpd.conf里面SVNPath 写成SVNParentPath的问题。

6./svn/svn_auth_file
该文件我们可以通过使用htpasswd -cm filename username
如果要求你输入两次密码就Ok了。

7.注意点
我搞了很久,问题主要出在了SVNPath和SVNParentPath上面了。
/etc/apache2/httpd.conf
其中/svn代表用http的访问路径, SVNParentPath /svn/,这条语句的意思是我所有的版本库是在/svn下面的 .
Code:


  DAV svn
  # any "/svn/foo" URL will map to a repository /usr/local/svn/foo
  SVNParentPath /usr/local/svn

使用SVNParentPath有一个好处就是下层的目录会自动映射。如果我们不使用SVNParentPath的话,比如/usr/local/svn/a,/usr/local/svn/b两个目录,那么我们需要新建





而且我们一般把/svn目录不设置为一个subversion仓库的,而是把a,b设置为subversion仓库,那么我们输入会出现
Could not open the requested SVN filesystem 因为它不是一个subversion仓库。

但是现在的问题是我在使用SVNParentPath的情况,输入
会出现
You don't have permission to access /svn/ on this server。
那么就是svn的目录功能没有打开,如何解决这个问题呢?

参考了一下文档:
http://blog.csdn.net/islq/archive/2006/04/17/666911.aspx

发现少写了一个/,完整的httpd.conf应该为
Code:

                                                                          
DAV svn
SVNParentPath /svn/
AuthzSVNAccessFile /svn/svn_access_file
AuthUserFile /svn/svn_auth_file
AuthName "welcome to my web site"
Require valid-user
AuthType Basic
SVNListParentPath ON

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