带有 nginx 的 HHVM 不从子文件夹 运行 php

HHVM with nginx don't run php from subfolders

我有 nginx 和 hhvm 的工作设置。这是我的规则配置的一部分,在每个请求中使用(从调试日志中获取):

location ~ \.php$ {
    proxy_intercept_errors on;
    error_page 502 = @fallback;

    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root;
    include fastcgi_params;
}

然后我有一个简单的站点:

root
  index.php // echo 'this is index'
  sub
    index.php  // echo 'this is sub'

现在,如果我加载 example.com,我将看到 this is index。对。

但是 example.com/sub - 我仍然看到 this is index 而不是 this is sub

为什么会这样?请帮忙

顺便说一句,如果我要使用 php-fpm:

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root;
    include fastcgi_params;
}

一切正常。

谢谢!

也许解决了,...或者没有!

你应该有:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

而不是

fastcgi_param SCRIPT_FILENAME $document_root;

使用 php-fpm 和 hhvm。