Nginx + phpFPM:PATH_INFO总是空的

我在Debian上configuration了nginx stable(1.4.4)+ PHP(使用FastCGI,php-fpm)。 这工作正常:

location ~* ^/~(.+?)(/.*\.php)$ { fastcgi_split_path_info ^(.+?\.php)(/.*)$; alias /home/$1/public_html$2; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_index index.php; autoindex on; } 

我使用PATH_INFOvariables,因此我将以下行添加到fastcgi_params:

 fastcgi_param PATH_INFO $fastcgi_path_info; 

在/etc/php5/fpm/php.ini中:

 cgi.fix_pathinfo = 0 

我认为这应该工作,但是当我打印出所有的服务器variables,PATH_INFO总是空的:

  array ( 'USER' => 'www-data', 'HOME' => '/var/www', 'FCGI_ROLE' => 'RESPONDER', 'QUERY_STRING' => '', 'REQUEST_METHOD' => 'GET', 'CONTENT_TYPE' => '', 'CONTENT_LENGTH' => '', 'SCRIPT_FILENAME' => '/usr/share/nginx/html/srv_var.php', 'SCRIPT_NAME' => '/srv_var.php', 'PATH_INFO' => '', 'REQUEST_URI' => '/srv_var.php', 'DOCUMENT_URI' => '/srv_var.php', 'DOCUMENT_ROOT' => '/usr/share/nginx/html', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'GATEWAY_INTERFACE' => 'CGI/1.1', 'SERVER_SOFTWARE' => 'nginx/1.4.4', ..... ) 

我无法确定问题出在哪里。 有任何想法吗?

尝试这个:

 set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; 

http://wiki.nginx.org/PHPFcgiExample

http://trac.nginx.org/nginx/ticket/321

迟到的答案,但它可能是有用的人。

我使用了变量REQUEST_URI而不是PATH_INFO。 看起来像包含与PATH_INFO应该具有的相同的值。

这是我得到的。 它就像一个魅力。

  • nginx 1.10.1
  • PHP的5.6.24

https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/