我尝试在 Apache 服务器上设置 subversion。我遵循了以下指南:[http://wiki.centos.org/HowTos/Subversion][1]
如果我尝试使用 Tortoise SVN 签出项目,则会收到以下错误:
Unexpected HTTP status 405 'Method Not Allowed' on '/repos
如果我尝试在 Linux 服务器上使用 svn 客户端,我会收到以下错误:
svn: Server sent unexpected return value (405 Method Not Allowed) in response to OPTIONS request for 'https://server.ch/repos'
我在 apache 服务器上的当前配置如下:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<VirtualHost *:443>
...
<Directory "/var/www/svn/">
Order allow,deny
Allow from all
AllowOverride all
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/svn-auth-conf
Require valid-user
</Directory>
<Location /repos>
DAV svn
SVNParentPath /var/www/svn/repos
SVNListParentPath on
SSLRequireSSL
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/svn-auth-conf
Require valid-user
</Location>
</VirtualHost>
提前感谢您的任何建议或帮助
问候马克
答案1
我发现了问题,Location 和 SVNParentPath 设置错误。我按照这里的解决方案进行操作 [http://www.wandisco.com/svnforum/threads/35525-Stuck-with-error-%E2%80%9C405-Method-Not-Allowed%E2%80%9D][1]
apache 上的正确配置如下:
<VirtualHost *:443>
...
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
SVNListParentPath on
SSLRequireSSL
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/svn-auth-conf
Require valid-user
</Location>
</VirtualHost>
答案2
在您的 Apache 配置中,禁用OPTIONS
SVN 使用的此方法。您可以在里面启用此方法<Directory "/var/www/svn/">
<Directory "/var/www/svn/">
...other config here
<Limit OPTIONS>
Order Deny,Allow
Allow from all
</Limit>
...other config here
</Directory>
您必须知道启用此方法的安全隐患。有关 SVN 使用的所有 HTTP 方法,请参阅官方文档。