Вводные.
<?php echo __FILE__;
location /api/ {
root /opt/share/www/site1;
default_type "application/json";
autoindex off;
fastcgi_pass unix:/opt/var/run/php8-fpm.sock;
include fastcgi_params;
fastcgi_split_path_info ^(/api)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param REQUEST_URI $fastcgi_path_info;
}Так вот в такой ситуации при обращении по адресу http://site1/api/blablabla (подразумевается что site1 маппится на нужный для nginx IP и порт) вам в браузер будет выдаваться "No input file specified". При этом в error.log будет что-то типа "Unable to open primary script: /opt/share/www/site1/index.php (No such file or directory)".
Если заглянуть в nginx/fastcgi_params, то мы там кстати увидим, что никакой SCRIPT_FILENAME не задаётся, а задаётся SCRIPT_NAME. Может это его надо переопределить?
Допишем его в конфиг nginx аналогично SCRIPT_FILENAME:
include fastcgi_params;
...
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param SCRIPT_NAME $document_root/index.php;
...
Ну и, понятное дело, перезагрузим конфигурацию nginx через "nginx -s reload"
Это ничего не даст. Ошибка будет та же.
Если же убрать из конфига nginx передачу параметра SCRIPT_FILENAME, то ошибка будет другая: в браузере будет "File not found", а в error.log - "Primary script unknown".
Ну ОК. Вы скажете: "Чувак, у тебя задан doc_root, вот и надо указывать путь к index.php не абсолютный путь относительно корня, а от /opt/share/www !"
Ха, если бы все было так просто. Ну смотрите. Выкидываем $document_root из параметров и делаем так:
include fastcgi_params;
...
fastcgi_param SCRIPT_FILENAME /site1/index.php;
fastcgi_param SCRIPT_NAME /site1/index.php;
...
Следуя логике, у нас /opt/share/www соединится с /site1/index.php, и мы получим абсолютный путь.
include fastcgi_params;
...
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param SCRIPT_NAME /site1/index.php;
...
В таком случае, в нашем примере, в конечном итоге оба параметра будут ссылаться на /opt/share/www/site1/index.php