我在 Ubuntu 18.04 上运行 nginx 1.14.0 和 php-fpm5.6。当我使用 info.php 查看我的 PHP 变量时,PATH_INFO 变量为空。我想知道可能出了什么问题?
/etc/nginx/sites-enabled/mysite.conf
location ~ [^/]\.php(/|$) {
fastcgi_pass php56; # upstream server named in /conf.d/default.conf
include fastcgi_params;
fastcgi_keep_conn on;
fastcgi_connect_timeout 30;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffers 256 16k;
fastcgi_max_temp_file_size 0;
fastcgi_index index.php;
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;
}
/etc/nginx/fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param PATH_INFO $path_info;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
PHP 变量输出
_SERVER["DOCUMENT_ROOT"] /var/www/vhosts/mysite/site
_SERVER["DOCUMENT_URI"] /server/info.php
_SERVER["PATH_INFO"] no value
_SERVER["SCRIPT_FILENAME"] /var/www/vhosts/mysite/site/server/info.php
_SERVER["SCRIPT_NAME"] /server/info.php