0

我已经在我的 nginx 网络服务器上构建了 svn 服务器。我的 nginx 配置是

服务器 {
        听 80;
        server_name svn.mysite.com;
        地点 / {
        access_log 关闭;
        proxy_pass http://svn.mysite.com:81;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header 主机 $host;
        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 up没有任何问题,当我尝试提交时,我得到错误:

$svn 向上
第 1285 版。
$ svn信息
小路: 。
网址:http://svn.mysite.com/elpis-repo/crons
存储库根目录:http://svn.mysite.com/elpis-repo
存储库 UUID:5303c0ba-bda0-4e3c-91d8-7dab350363a1
修订:1285
节点种类:目录
时间表:正常
最后更改作者:alaa
最后更改版本:1280
最后更改日期:2012-04-29 10:18:34 +0300(2012 年 4 月 29 日,星期日)

$svn st
米配置.php
$svn ci -m "只是一个测试,在配置中添加空行" config.php
发送 config.php
svn:提交失败(详情如下):
svn:文件 'config.php' 已过期
svn: '/elpis-repo/!svn/bc/1285/crons/config.php' 找不到路径

如果我尝试在端口 81 上 svn co(我的 proxy_pass 是 apache)然后 svn ci,它将顺利运行!但是为什么当我使用 nginx 来完成它时它不起作用?
任何想法都受到高度赞赏。

4

1 回答 1

0

https://serverfault.com/questions/388835/svn-using-nginx-commit-failed-path-not-found/389021#answer-389021'>从服务器故障引述
请求被您的 .php$ 位置捕获块,并通过 FastCGI 传递给 PHP。您需要确保 SVN 请求始终代理到 Apache。如果您不需要此虚拟主机上的 PHP,只需删除该位置指令。如果您需要特定路径下的 PHP,请将 location 块更具体,例如 ^/phpstuff/.*.php$。如果这不可能,请在 PHP 之前添加一个空的位置块,以在 SVN 存储库路径下捕获 .php 文件,例如:

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


参考: https ://serverfault.com/questions/388835/svn-using-nginx-commit-failed-path-not-found/389021#answer-389021

于 2012-05-15T06:26:31.633 回答