利用SVNListParentPath增長http瀏覽倉庫根目錄的功能

使用SVNParentPath的時候,直接訪問根目錄的時候,老是獲得如下錯誤提示:html

403 Forbidden

Forbidden
You don't have permission to access / on this server.

下面的辦法能夠搞定它:apache

1、首先,Subversion1.3及之後版本支持SVNListParentPath ON,以前的版本只能使用PHP本身作。svn

2、Location 設置中最後要加上/,應該是<Location /svn/>而不是<Location /svn>不然可能不能訪問。ui

3、經過「http://localhost/svn/」 來訪問倉庫列表,若是想讓「http://localhost/svn」也起做用的話,須要在的後面增長重定向的設置:RedirectMatch ^(/svn)$ $1/ ,固然也能夠採用RewriteEngine之類的辦法。this

4、修改後的httpd.conf的對應部分以下:.net

<Location /svn/>
                   DAV svn
                   SVNListParentPath on
                   SVNParentPath /code/svndata
                   AuthType Basic
                   AuthName "Subversion repository"
                   AuthUserFile /code/svndata/passwd
                   AuthzSVNAccessFile /code/svndata/authz
                   Require valid-user
       </Location>

TIP: SVNPath 與 SVNParentPath區別code

dav_svn.conf 的配置中有 SVNPath 與 SVNParentPath 兩個選項.
SVNPath用於只有一個項目的狀況,此時若是在主目錄下面再建新項目,則不能訪問.提示沒有權限.
若是有多個項目的話,此時應該使用SVNParentPath來設置父目錄來設置項目的父目錄,這樣子目錄裏面能夠有多個項目了。而後auth文件裏面能夠定義子目錄的權限,apache的/etc/httpd/conf.d/subversion.conf 配置文件裏面設置一個location就能夠了。server

<Location /svn>
DAV svn
SVNParentPath /tmp/svntest/
AuthType Basic
AuthName "Subversion"
AuthUserFile /tmp/svntest/passwd
AuthzSVNAccessFile /tmp/svntest/authz
Require valid-user
</Location>

之後多個子項目都是用一樣的認證文件,訪問方式就爲 http://ip/svn/pro1 http://ip/svn/pro2htm

[root@svn svntest]# ls
authz  passwd  pro1  pro2
[root@svn svntest]# pwd
/tmp/svntest

認證文件給子項目賦權。blog

[root@svn svntest]# cat authz 
[pro1:/]
user1 = rw
[pro2:/]
user1 = rw

參考
http://blog.csdn.net/islq/article/details/666911
http://54im.com/svn/svnpath-svnparentpath.html

相關文章
相關標籤/搜索