Константин Ткаченко 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@fidonet http://vas.tomsk.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Reply via email to