Nginx + phpFPM | ДЕБИАН 10 | PATH_INFO всегда пуст

Я уже просмотрел предлагаемые решения в stackoverflow и не нашел ничего, что решило бы мою проблему:

Проблема в том, что PATH_INFO по-прежнему пуст.

Запрос в порядке: route-php.local/show

$_SERVER['REQUEST_URI']

/home/niko/web/www/route-php.local/public/index.php:46:
array (size=42)
....
'PATH_INFO' => string '' (length=0)
'QUERY_STRING' => string '' (length=0)
....
/home/niko/web/www/route-php.local/public/index.php:51:
array (size=1)
'_route' => string 'show' (length=4)

но с этим запросом не все в порядке: route-php.local/show?p=test

/home/niko/web/www/route-php.local/public/index.php:46:
array (size=42)
....
'PATH_INFO' => string '' (length=0)
'QUERY_STRING' => string 'p=test' (length=6)
....

Путь не распознан, потому что он пуст...? Почему ?

$_SERVER['PATH_INFO']

с: маршрут-php.local/show

/home/niko/web/www/route-php.local/public/index.php:46:
array (size=42)
....
'PATH_INFO' => string '' (length=0)
'QUERY_STRING' => string '' (length=0)
....
/home/niko/web/www/route-php.local/public/index.php:51:
array (size=1)
'_route' => string 'index' (length=4)

Вот моя установка:

PHP-7.4 с композитором и я установил symfony/routing

https://packagist.org/packages/symfony/routing

/etc/php/7.3/fpm/php.ini
/etc/php/7.3/cli/php.ini
/etc/php/7.3/apache2/php.ini
    
cgi.fix_pathinfo=1  # And I tried   cgi.fix_pathinfo=0
/etc/nginx/sites-available/route-php.local

location / {
    try_files $uri /index.php;
}

location ~ [^/]\.php(/|$) { 
        root /var/www/localhost;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        include snippets/fastcgi-php.conf;
}
snippets
/etc/nginx/snippets/fastcgi-php.conf

fastcgi_split_path_info ^(.+?\.php)(/.*)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param   SCRIPT_FILENAME         $document_root$fastcgi_script_name;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   PATH_INFO               $path_info;  # or fastcgi_param PATH_INFO $fastcgi_path_info
fastcgi_index index.php;
include fastcgi.conf;

Я пробовал несколько решений, но ничего не работает ....

пример конфигурации Symfony: https://symfony.com/doc/current/setup/web_server_configuration.html#nginx

Мой код PHP:

## index.php ##

use Symfony\Component\Routing\Matcher\UrlMatcher;
use Symfony\Component\Routing\RequestContext;
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;

require __DIR__ . '/vendor/autoload.php';

$listeRoute = new Route("/");
$createRoute = new Route("/create");
$showRoute = new Route("/show");

// COLLECTION ROUTES
$collection = new RouteCollection();
$collection->add("list", $listeRoute);
$collection->add("create", $createRoute);
$collection->add("show", $showRoute);

//MATCHER
$matcher = new UrlMatcher($collection, new RequestContext());

var_dump($_SERVER);

$pathInfo = $_SERVER['PATH_INFO'] ?? '/';

$resultat = $matcher->match($pathInfo);
var_dump($resultat);
die();

другой пример:

php -
    |-index.php
    |-text.php
#index.php
var_dump($_SERVER['PATH_INFO']);
echo "index.php";
#test.php
var_dump($_SERVER['PATH_INFO']);
echo "test.php";
cgi.fix_pathinfo=1
location / {try_files $uri $uri/ /$uri.php$is_args$args;}
location ~ \.php {
  include snippets/fastcgi-php.conf;
  fastcgi_pass unix:/run/php7.3-fpm.sock
}
#localhost/index
string(0) ""
index.php

#localhost/test
string(0) ""
test.php

Почему оно так себя ведет?

я бы хотел такое поведение

<?php

echo "PATH INFO => ";
var_dump($_SERVER['PATH_INFO']);

echo "<br>";

echo "REQUEST_URI => ";
var_dump($_SERVER['REQUEST_URI']);


// redefine the variable PATH_INFO
$_SERVER['PATH_INFO'] = explode('?', $_SERVER['REQUEST_URI']);

echo "<br>";
echo "NEW - PATH INFO => ";
var_dump($_SERVER['PATH_INFO'][0]);

echo "<br>";
echo "index.php";
# https://localhost/index?test=test

PATH INFO => string(0) ""
REQUEST_URI => string(16) "/index?test=test"
NEW - PATH INFO => string(6) "/index"
index.php

person Nicolas    schedule 16.12.2020    source источник
comment
Информация о пути — это та часть URI, которая следует за .php. Запрошенный URI не содержит .php, поэтому информация о пути отсутствует. Фактически, URI внутренне перенаправляется на /index.php, который также не содержит информации о пути.   -  person Richard Smith    schedule 17.12.2020
comment
У меня есть только файл index.php   -  person Nicolas    schedule 20.12.2020
comment
Я думаю, что это проблема XY. Чего вы пытаетесь достичь с помощью PATH_INFO?   -  person Julien B.    schedule 20.12.2020
comment
@JulienB. Я ответил вам в посте, и я просто установил на сервер: nginx, apache2 (слушайте 8080), php, php-fpm, git, vim и больше ничего.   -  person Nicolas    schedule 21.12.2020