Re: fcgiwrap не могу запустить

Victor Sudakov vas на mpeks.tomsk.su
Ср Янв 23 13:42:09 UTC 2019


Константин Ткаченко wrote:
> > 2019/01/23 15:29:36 [error] 93721#100134: *5 FastCGI sent in stderr: "Cannot get script name, are DOCUMENT_ROOT and SCRIPT_NAME (or SCRIPT_FILENAME) set and is the script executable?" while reading response header from upstream, client: 10.10.10.3, server: , request: "GET /cgi-bin/test HTTP/1.1", upstream: "fastcgi://unix:/tmp/fcgiwrap.socket:", host: "admin.sibptus.ru"

> Владельца для /usr/local/www/cgi-bin/test пробовали ставить в www?
> Понятно, что есть чтение, но меня смущает эта директива fcgiwrap_user="www"

Нет, права и владельцы тут ни при чём, дело в другом. 

Путь к скрипту задаётся (передаётся в fcgiwrap) склеиванием двух
переменных: SCRIPT_NAME и DOCUMENT_ROOT, которые получаются из
$fastcgi_script_name и $document_root соответственно. По умолчанию
$fastcgi_script_name=$request_uri, то есть при моей конфигурации 

> >         location /cgi-bin/ {
> >             root   /usr/local/www/cgi-bin;
> >             include /usr/local/etc/nginx/fastcgi_params;
> >             fastcgi_pass unix:/tmp/fcgiwrap.socket;
> >         }

путь к cgi-скрипту получался "/usr/local/www/cgi-bin/cgi-bin/test",
понятно что такого пути нет. Поэтому надо было или урезать root до
"/usr/local/www", или задать свой $fastcgi_split_path_info, который бы
переопределил $fastcgi_script_name, отрезав от "/cgi-bin/test" только
последнюю компоненту.

Спасибо Иван <nginx эт kinetiksoft.com> за верную наводку.

-- 
Victor Sudakov,  VAS4-RIPE, VAS47-RIPN
2:5005/49 at fidonet http://vas.tomsk.ru/


Подробная информация о списке рассылки nginx-ru