Chr*_*ies 12 svn websvn dav webdav apache2
试图从我的SVN回购结账给我
svn: E195019: Redirect cycle detected for URL ...
但是,当我在某个(特定)代理服务器后面时,似乎只会出现此错误.
正如在其他帖子中所讨论的(参见towise svn给我"检测到URL'域/ svn'的重定向循环'"),如果SVN DAV配置错误,例如使用SVNParentPath,则应该使用SVNPath,则会发生此错误.但是,我的配置似乎是正确的 - 据我所知 - 问题只发生在代理后面.
存储库的设置或多或少是标准的,例如,
ServerAlias svn.mydomain.com <Location /myrepo> DAV svn SVNPath /var/www/vhosts/mydomain.com/svn/myrepo AuthType Basic AuthName "mydomain svn" AuthUserFile /var/www/vhosts/svn.mydomain.com/conf/htpasswd-myproject # Allow read-only access to anyone, otherwise require # require authentication Require valid-user </Location>
Chr*_*ies 13
(在使用半个周末搜索解决方案后,我回答了我自己的问题):
看起来好像这个错误消息与subversion存储库位于svn/myrepo
目录svn
也列为子域的DocumentRoot 的目录中有关svn.mydomain.com
.那个DocumentRoot指令对我来说并不明显,因为子域的文档根在一个不同的conf文件中被混淆了(我使用Plesk来维护服务器).这造成了某种模糊性.一旦我将子域的文档根移动到其他位置,错误消息就消失了.
问题很难追查,因为 - 据我所知 -
如果回购位于亚结构域,即,顶层没有出现错误<Location />
和SVNPath /var/www/vhosts/mydomain.com/svn
在上述结构中.
如果通过代理访问存储库,则仅显示错误.
与DocumentRoot的冲突并不那么明显,因为它是一个子域.
总结一下:解决方案(使用Plesk时):将Plesk设置(GUI)中子域的"DocumentRoot"更改为SVN目录中的不同内容.www.mydomain.com的"DocumentRoot"是httpdocs
.svn.mydomain.com的"DocumentRoot"是(默认情况下)svn
.我改变了,httpdocs-svn
问题就消失了.该文件夹httpdocs-svn
未在我的设置中使用,因为svn.mydomain.com下面的所有内容都由DavSVN处理.
小智 11
确保您使用的链接是'svn'而不是'view'链接.
即www.myrepo.com/svn/myproject/trunk ||正确
www.myrepo.com/view/myproject/trunk ||不正确
这应该工作.
md.*_*san 10
在本教程之后,我遇到了类似的错误: 如何在Ubuntu 18.04和16.04 LTS上安装SVN Server。后来意识到,我必须在步骤3中删除以下行
别名/ svn / var / lib / svn
小智 5
就我而言,问题是 ubuntu 上的配置文件之间存在不兼容的设置。
我有 ubuntu 18.04 和 Apache2 以及来自 ubuntu 的最新 svnserver,为了解决重定向问题,我不得不从两个不同的配置文件中删除别名:/etc/apache2/mods-enabled/dav_svn和/etc/apache2/site-enabled/默认 ssl.conf
/etc/apache2/mods-enabled/dav_svn
#Alias /svn /svn_repo/svn
<Location /myrepo>
DAV svn
SVNPath /svn_repo/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /mypath/dav_svn.passwd
Require valid-user
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
</Location>
Run Code Online (Sandbox Code Playgroud)
/etc/apache2/site-enabled/default-ssl.conf
#Alias /svn /svn_repo/svn
<Location /myrepo>
DAV svn
SVNPath /svn_repo/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /mypath/dav_svn.passwd
Require valid-user
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
</Location>
Run Code Online (Sandbox Code Playgroud)
显然修改后我需要重新启动apache:
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)