Если работаем через сокет, какой блок часто можно встретить?
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-docker/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
Но есть нюанс: $realpath_root в данном случае сломан, вероятно потому что там должен быть реальный путь, но там пусто, файлы же в докере..
https://nginx.org/en/docs/http/ngx_http_core_module.html#variables
$realpath_root
an absolute pathname corresponding to the root or alias directive’s value for the current request, with all symbolic links resolved to real paths
Вариант - вписывать туда путь явно или через вспомогательную переменную. Хотя с $document_root тоже работает, если где-то выше выставлен root
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Но читаемость всё-равно будет не очень: всё-таки ожидается, что root локальный. Можно придумать свою переменную типа
set $root_in_docker /srv/.../ ;
и потом
fastcgi_param SCRIPT_FILENAME $root_in_docker$fastcgi_script_name;
только не забыть потом
root $root_in_docker;
а то показывает дефолтную nginx страницу. Хотя и так не очень правильно, но - работает
Комментариев нет:
Отправить комментарий