在 stackoverflow 上询问了以下问题。
http://stackoverflow.com/questions/2016868/subversion-svn-propfind-405-error/2017121
他们说你也许能帮忙。
我是 Subversion 的新手,有人告诉我这是自切片面包以来最好的东西。我试过谷歌,但不知道哪里出了问题,也试过了很多不同的建议。我得到了以下错误
位置信息指定不正确。
svn: '/svn' 的 Propfind: 405 方法不允许(http://IP地址),其中IPADDRESS 是我的服务器的IP。
当我尝试通过 Zend Studio 登录时,出现此问题。我使用以下网址尝试登录http://IP地址/svn/用户名:fakeuser 密码:fakepassword
我认为问题出在这个文件上,因为错误“位置信息指定不正确”。此文件包含在 httpd.conf 文件中。我已重新启动 apache,重新启动 apache 时没有出现错误。
<Location /project1>
DAV svn
SVNPath /home/jhughes/project1
AuthzSVNAccessFile /home/jhughes/.svn-policy-file
AuthName "SVN Repositories"
AuthType Basic
AuthUserFile /home/jhughes/.svn-auth-file
Satisfy Any
Require valid-user
</Location>
我花了几个小时才搞定,但还是搞不定。所以任何帮助我都会感激不尽,我一定会给别人点赞。
我没有使用代理服务器。我使用的是服务器的 IP 地址,因为我的服务器上有多个域,我认为这可能是一个问题。
答案1
Ops,也许我遗漏了一些东西,但如果你的位置是“/project1”,为什么访问http://IP地址/svn/?
我只是将您的位置配置代码片段粘贴到这里(ubuntu karmic),创建 repo 和用户以及 authz 文件,然后这里的所有内容都在“http://IP地址/project1“
您的.svn-auth-file 没有错误吗?
通过普通浏览器可以运行吗?
Apache 日志上发生了什么事?
答案2
我刚刚解决了相同的错误信息。事实证明,对于某些 svn 方法,区分 ServerName(必须是实际的服务器名称)和 ServerAlias(这是您选择的用于捕获您在 DNS 中设置的域和子域的名称)非常重要。
所以
<VirtualHost *:443>
ServerName svn.mydomain.net
...
</VirtualHost>
会给出错误:
svn: E175002: Unexpected HTTP status 405 'Method Not Allowed' on '/svn'
svn: E175002: Additional errors:
svn: E175002: PROPFIND request on '/svn' failed: 405 Method Not Allowed
但是如果您正确设置虚拟主机并且其 ServerName 与您的/etc/hostname
和/etc/hosts
文件匹配,则错误将不再出现。
<VirtualHost *:443>
ServerName mydomain.net
ServerAlias svn.mydomain.net
...
</VirtualHost>