svn使用nginx提交失败:找不到path

我已经在我的nginx web服务器上构build了svn服务器。 我的nginxconfiguration是

服务器{
        听80;
         server_name svn.mysite.com;
        位置 / {
         access_logclosures;
         proxy_pass http://svn.mysite.com:81;
         proxy_set_header X-Real-IP $ remote_addr;
         proxy_set_header主机$主机;
         proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
         }
        位置〜\ .php $ {
                 fastcgi_pass 127.0.0.1:9000;
                 fastcgi_index index.php;
                包括fastcgi_params;
         }
 }

现在,我可以svn cosvn正常没有任何问题,当我尝试提交我得到错误:

 $ svn了
在修订1285。
 $ svn信息
path:。
url:http://svn.mysite.com/elpis-repo/crons
存储库根目录:http://svn.mysite.com/elpis-repo
储存库UUID:5303c0ba-bda0-4e3c-91d8-7dab350363a1
修订版:1285
节点种类:目录
附表:正常
最后更改了作者:alaa
最后更改Rev:1280
最后修改date:2012-04-29 10:18:34 +0300(2012年4月29日星期日)

 $ svn st
 M config.php
 $ svn ci -m“只是一个testing,添加空行configuration”config.php
发送config.php
 svn:提交失败(详情如下):
 svn:文件“config.php”已过期
 svn:'/elpis-repo/!svn/bc/1285/crons/config.php'找不到path

如果我尝试svn端口81(我的proxy_pass是apache),然后svn ci,它将工作顺利! 但是为什么当我使用nginx来实现它时,它不工作?
任何想法是高度赞赏。

该请求被您的\.php$位置块捕获,并通过FastCGI传递给PHP。 你需要确保SVN请求总是代理到Apache。 如果你不需要这个虚拟主机上的PHP,只需删除该位置指令。 如果您需要特定path下的PHP,请使位置块更具体,如^/phpstuff/.*\.php$ 。 如果不可能,在PHP之前添加一个空的位置块来捕获SVN回购path下的.php文件,例如:

 location ~ ^/elpis-repo/.*\.php$ {} 

如果你想代理请求,只有“svn.mysite.com/elpis-repo”颠覆,其余的networking服务器,然后使用此

 location ~ ^/elpis-repo {}