NGINX fastcgi无法获取脚本名称

NGINX fastcgi无法获取脚本名称,nginx,cgi,fastcgi,Nginx,Cgi,Fastcgi,我正在nginx上设置fastcgi。我有点让它工作了。如果我有factcgi_param SCRIPT_FILENAME/var/www/cgi-bin/hello.cgi,则在我的位置块内它可以工作。但是我不想硬编码链接 使用以下配置设置fastcgi factcgi_param SCRIPT_FILENAME /var/www/cgi-bin/$fastcgi_script_name; 我得到以下错误 cannot get script name are document_root a

我正在nginx上设置fastcgi。我有点让它工作了。如果我有
factcgi_param SCRIPT_FILENAME/var/www/cgi-bin/hello.cgi,则在我的位置块内它可以工作。但是我不想硬编码链接

使用以下配置设置fastcgi

factcgi_param SCRIPT_FILENAME /var/www/cgi-bin/$fastcgi_script_name; 
我得到以下错误

cannot get script name are document_root and script_name or (script_file) set and is the script executable? 
while reading response header upstream from upstream. client 127.0.0.1, 
server _, request "get /cgi-bin/hello.cgi"
在网页上我得到403禁止

hello.cgi
是可执行的,当我硬编码时,它就会工作。

我的

看起来您的HTTP请求是
/cgi-bin/hello.cgi
,因此您应该使用
factcgi-param-SCRIPT\u-FILENAME/var/www$fastcgi\u-SCRIPT\u-name
而不是
factcgi-param-SCRIPT\u-FILENAME/var/www/cgi-bin/$fastcgi\u-SCRIPT\u-name。谢谢你的工作。通常它像
root/var/www
然后
factcgi\u param SCRIPT\u FILENAME$document\u root$fastcgi\u SCRIPT\u name。当您想要更改站点的根目录时,唯一需要更改的是
root
指令值。