分类: LINUX
2009-07-22 20:19:27
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