如何启用的mod_dav_svn在一个名为虚拟主机的根目录?

这可能吗? 我有麻烦SVN的客户不能够访问存储库,出现以下错误信息:

库永久移动到“http://svn.example.com/test/”; 请重新定位

如果我加入了'/'来,我尝试访问的路径的终点,它只是再次剥离其关闭,并显示同样的错误信息。 我的配置文件如下所示:

<VirtualHost *> ServerName svn.example.com # Normal VirtualHost stuff here <Location /svn> # Uncomment this to enable the repository DAV svn SVNParentPath /some/path/to/repositories # Setup mod_authz_svn, etc, etc here </Location> </VirtualHost>

注:该作品。 但是,如果我的位置更改为只/它再次停止上述错误的工作。 是否有可能使用的根目录,还是我失去了一些东西呢? Firefox的显示存储库服务存储库移出根时上市的罚款。

正如其他人所指出的,这只是似乎是一个名为虚拟主机内部的问题......任何人有任何的奇思妙想,为什么?

--------------解决方案-------------

问题是,你正在使用的文档根目录也有版本库根(我不怪你,这应该只是工作,但事实并非如此)。

尝试指向DocumentRootSVNParentPath指令到不同的物理位置,所以产生的配置文件应该是这样的(略):

<VirtualHost *:80>
DocumentRoot /home/svn.example.com/docroot

<Location />
SVNParentPath /home/svn.example.com/svnroot
SVNListParentPath on
</Location>
</VirtualHost>

此外,由于@Nigel朱厄尔说,删除重写块,理智。

从意见我以前的答案继续,我也试着用虚拟主机:

<VirtualHost 127.0.0.1:80>
<Location />
DAV svn
SVNPath /repository
AuthType Basic
AuthName "Repository authentication"
AuthUserFile /repository/.svn-auth
AuthzSVNAccessFile /repository/.svn-access
Satisfy All
Require valid-user
</Location>
</VirtualHost>

和它的工作,我可以浏览与Firefox的库,可以用svn命令行客户端访问它。

我结束了使用mod_rewrite成功地重写所有访问根目录为/svn从而获得访问从仓库/repository_name 作为参考,这是我结束了配置:

# Rewrite / into /svn to avoid errors that seem to occur when using the root
# for repositories.
RewriteEngine On
# Subdirectories that SHOULD be accessed directly, ie. trac
# /svn should be here to avoid redirect loops
RewriteCond %{REQUEST_URI} !^/(trac|svn)/
RewriteRule ^/(.*)$ /svn/$1 [PT]

好吧,我想我们已经找到是谁的错:命名的虚拟主机:)

根据这样的结构:

<VirtualHost dave.test>
<Location />
DAV svn
SVNPath /repository
AuthType Basic
AuthName "Repository authentication"
AuthUserFile /repository/.svn-auth
AuthzSVNAccessFile /repository/.svn-access
Satisfy All
Require valid-user
</Location>
</VirtualHost>

当我运行命令svn ls http://dave.test我得到这个错误:

svn: Server sent unexpected return value (405 Method Not Allowed) in response to
PROPFIND request for '/'

因此很明显,有一个问题,当一个人试图实现的mod_dav_svn在一个名为虚拟主机的根目录下...

在/etc/apache2/conf.d/subversion.conf发现这个(需要地图错误文件默认设置):

<VirtualHost *>
ServerName svn.example.com
ErrorLog /var/log/apache2/svn.example.com-error_log
TransferLog /var/log/apache2/svn.example.com-access_log
#
# Do not set DocumentRoot. It is not needed here and just causes trouble.
#
# Map the error documents back to their defaults.
# Otherwise mod_dav_svn tries to find a "error" repository.
#
ErrorDocument 400 default
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 408 default
ErrorDocument 410 default
ErrorDocument 411 default
ErrorDocument 412 default
ErrorDocument 413 default
ErrorDocument 414 default
ErrorDocument 415 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 502 default
ErrorDocument 503 default
#
<Location />
...
</Location>

我所做的这之后一切开始按预期工作。

This is working for me:

<Location />
DAV svn
SVNPath /repository
AuthType Basic
AuthName "Repository authentication"
AuthUserFile /repository/.svn-auth
AuthzSVNAccessFile /repository/.svn-access
Satisfy All
Require valid-user
</Location>

浏览器指向http://127.0.0.1显示我的信息库内容。

感谢这个,终于得到了一个虚拟主机的工作,由于您的意见。

<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName svn.example.com
ServerAlias svn
DocumentRoot /home/svn.example.com/public_html

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/svn$
RewriteRule .* /svn/ [PT]

RewriteCond %{REQUEST_URI} !^/svn/
RewriteRule ^/(.*)$ /svn/$1 [PT]

<Location /svn>
DAV svn
SVNParentPath /home/svn.example.com/public_html
SVNListParentPath on
</Location>

<LocationMatch /svn/.+>
AuthzSVNAccessFile /home/svn.example.com/support/access.cfg

AuthType Basic
AuthName "Subversion"
AuthUserFile /home/svn.example.com/.htpasswd
Require valid-user
</LocationMatch>
</VirtualHost>

如图所示我发现,你可能还想补充一下:

RewriteCond %{REQUEST_URI} ^/svn$
RewriteRule .* /svn/ [PT]

为了赶http://svn.example.com/svn没有结局/。

曲霉。

<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/ForSvn"
ServerName xxx.xxx
ServerAdmin xxx
ErrorLog "/usr/local/apache/logs/xxx-error_log"
TransferLog "/usr/local/apache/logs/xxx-access_log"

ReWriteEngine On
RewriteCond %{REQUEST_URI} ^/svn$
RewriteRule .* /svn/ [PT]

<Location /svn>
DAV svn
SVNParentPath /svn/repos
SVNListParentPath on

# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
AuthType Basic
AuthName "Subversion"
AuthUserFile /svn/authfiles/svn-htpasswd
AuthzSVNAccessFile /svn/authfiles/svn-access.conf
Require valid-user
</LimitExcept>
</Location>

<LocationMatch /svn/myProject/>
AuthType Basic
AuthName "Subversion (private)"
AuthUserFile /svn/authfiles/svn-htpasswd
AuthzSVNAccessFile /svn/authfiles/svn-access.conf
Require user user1 user2 user3...
</LocationMatch>

和我一起工作正常。 感谢你为这个。

分类:SVN 时间:2012-01-01 人气:0
本文关键词: SVN,阿帕奇
分享到:

相关文章

  • 巨大的svn签发阿帕奇(dav_svn)消耗服务器上的所有内存 - 任何提示? 2014-09-02

    是否有在的Apache2 / dav_svn / SSL /颠覆服务器会使整个上的任何设置有更好的表现(或至少不会消耗所有的内存)上大签? 我在如何保持内存消耗下降的建议特别感兴趣. 之所以有这样的问题: 上周,我们有一个问题,我们的SVN服务器 - 它停止对所有请求,并且管理员告诉我们,所有的记忆都已经采取了阿帕奇. 我们使用的mod_dav在Apache通过SSL访问我们颠覆存储库. 该内存饥饿的原因是我的同事们做的〜2.5GB的可能已经包含了一些文件超过500MB更有规模大的结账之一. 我

  • 是否有可能有不同的用户权限(允许谁的谁不是)到MacOS X的一个SVN回购的文件夹? 2012-04-20

    我有多个开发商在不同的项目工作在同一个svn存储库,我不希望他们有机会到错误的项目. 我认为有多个存储库可以做的伎俩,现在我真的不知道,并试图在网上找到后,仍然还没有找到,如果怎么样,或者可以配置SVN /阿帕奇只允许特定帐户来访问一个特定的库. 有什么办法来实现与颠覆的安全性在Mac OS X这个基本的水平? 有没有办法使用htpassword这个? 在此先感谢您的帮助. --------------解决方案------------- 是的,你绝对可以做到这一点. 阅读Subversion手册

  • 在MEDIATEMPLE设置SVN? 2012-06-11

    我想设置一个专门的计划了在MEDIATEMPLE我自己的SVN服务器. 这将有助于我极大的更新/签出与我在印度的工作人员代码时. 我找不到什么好东西在网络上,我敢肯定有人在这里知道该怎么做. 我如何设置我的一个SVN服务器专用的,所以我可以创建多个库? 感谢您的帮助! --------------解决方案------------- 标准的颠覆书永远是起点(当然); 关于设置的Svn在Apache服务器的注意事项可以在第6章中找到. 在SVN服务器本身是很容易的; 它是一个可以给你带来麻烦了Apa

  • 如何通过NGINX通过HTTP服务与GIT用户名/密码? 2012-04-01

    尽管我已经了解如何配置混帐/ nginx的,让我发现了回购的链接,我不能让他们工作. 我跟着本教程中,Git仓库在nginx的HTTP WebDAV的,但用户/密码限制犯规的工作. 任何人都可以克隆存储库. 我从使用SVN +阿帕奇+ DAV_SVN的结构是,具有用于密码的文件(由htpasswd创建的),和用于AuthZ的一个文件. 我想这样做,用git + nginx的. 这怎么可能? 感谢你的帮助! --------------解决方案------------- 看看下面的文章,http:

  • HOWTO配置下的Apache2 mod_dav_svn的区域? 2012-10-08

    我有安装和配置所有的的Apache2和mod_dav_svn的,但是当访问HTTP://主机/ SVN /,得到这个: PS:在到/ mnt / SVN /是所有SVN回购parsent. 和回购协议是使用UTF8已命名. 操作系统:Ubuntu的11.10服务器64位的Apache2 -v服务器版本:阿帕奇/ 2.2.20(Ubuntu的)服务器建:2012年2月14日16时35分38秒 区域:还出口在/ etc / apache2的/ envvars中LANG = zh_CN.UTF-8 L

  • SVN,阿帕奇,Win7的X64 - 在哪里可以找到的mod_dav_svn和mod_dav_auth? 2012-03-18

    我试图让SVN + Apache的打算在Windows 7 64位,但显然我需要的64位版本mod_dav_svn.so和mod_dav_auth.so . 这些可用的地方? 我非常努力避免他们建设自己. 产品规格: SlikSVN 64 1.7.4 SVN Apache 2.2的 一些背景知识 我之所以说"显然我需要这些"就是从这个日志错误: httpd.exe:无法加载富/模块/ mod_dav_svn.so到服务器:在富/ httpd.conf中的492行语法错误指定的模块找不到

  • 我怎样才能使PHP系统(用户:阿帕奇)来添加文件,更改提交到SVN? 2014-11-17

    我想提出一个文件上传表单. 我也想加入我已上传到SVN图像,然后提交该更改. 类似的财产以后: system('svn add *', $ret1); system('svn commit -m "the files were added and committed"', $ret2); echo '<hr />add: ' . $ret1'; echo '<hr />commit: ' . $ret2'; 问题是,PHP运行作为"阿帕奇",

  • 阿帕奇,SVN和mod_python 2012-03-15

    我们使用Apache 2.2服务器SVN(1.6.2)在Windows库. 我们使用SSPI进行身份验证,而这工作. 我们有许多不同的存储库,并使用一个SVNParentPath在httpd.conf为他们服务. 就像是: <Location /> DAV svn SVNParentPath c:\repos [SSPI stuff] </Location> 因此,从客户端,我可以浏览到http:// SVN / repo1或http:// SVN / repo2(无论回购位于c:

  • 指着阿帕奇到SVN回购 2012-11-22

    我有我的服务器上SVN回购协议,其中包含我们的原型的工作版本. 目前我们已经回购签出,并通过我们的本地开发环境(LAMP)访问原,进行修改,然后提交. 我想知道的是如何维持回购的LAMP组合的现场工作版本,这样,当我们进行修改和提交,我们希望看到它反映了生活的网站上,这样我们就可以测试出变化. 这将确保我们每个人不必须保持一个独立的开发环境这可能会导致问题,由于版本差异... --------------解决方案------------- 我做了类似的事情:基本上,我只是增加了一个后钩提交的回购

  • 如何使用SVN(颠覆阿帕奇)的Andr​​oid项目维护版本 2013-03-02

    我想在我的Andr​​oid项目使用SVN(Apache的颠覆). 为了保持应用程序的版本. 任何一个可以告诉我什么是一步一步的过程安装和使用SVN在项目中. 我使用Eclipse赫利俄斯(3.6). 提前致谢.. --------------解决方案------------- 提交到一切,除了根文件夹中的SVN ......不更新内部SVN根文件夹,因为根文件夹包含.apk文件,并自动生成每次当你清洁或重建项目,并做看看下面的链接: 不能承诺SVN http://www.stealthcopt

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.352 (s). 10 q(s)