带有 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。
我有 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。