文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>apach2 + svn

apach2 + svn

时间:2009-07-22  来源:fewlife

by tangke <tangk@lemote.com>

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

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

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

<Location /svn>                                                                           
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启动不了。
</Location>
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:

<Location /svn>
  DAV svn
  # any "/svn/foo" URL will map to a repository /usr/local/svn/foo
  SVNParentPath /usr/local/svn
</Location>
使用SVNParentPath有一个好处就是下层的目录会自动映射。如果我们不使用SVNParentPath的话,比如/usr/local/svn/a,/usr/local/svn/b两个目录,那么我们需要新建
<Location /a>
</Localtion>

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

但是现在的问题是我在使用SVNParentPath的情况,输入
http://192.168.1.101/svn/会出现
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:

<Location /svn/>                                                                          
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
</Location>

相关阅读 更多 +
排行榜 更多 +
进击的小动物安卓版

进击的小动物安卓版

飞行射击 下载
进攻yalghaar

进攻yalghaar

飞行射击 下载
深空战场

深空战场

飞行射击 下载