2016-08-08 27 views
1

Ich habe ein einfaches Skript cpuinfo.sh, das funktioniert und ausführbar ist.So legen Sie DOCUMENT_ROOT und SCRIPT_NAME für fcgiwrap korrekt fest

Ich erhalte einen Fehler

* 224 FastCGI in stderr gesendet: "Kann nicht Skriptnamen erhalten, werde DOCUMENT_ROOT und SCRIPT_NAME (oder SCRIPT_FILENAME) gesetzt und sind die ausführbare Skript?" Beim Lesen des Response-Headers aus dem Upstream, Client: 86.44.146.39, Server: staging.example.com, Anforderung: "GET /cpuinfo.sh HTTP/1.1", upstream: "fastcgi: // unix:/var/run/fcgiwrap. Sockel:“host: "staging.example.com"

die nginx Einstellungen

location ~ (\.cgi|\.py|\.sh|\.pl|\.lua)$ { 
    gzip off; 
    autoindex on; 
    fastcgi_pass unix:/var/run/fcgiwrap.socket; 
    include fastcgi_params; 
    fastcgi_param DOCUMENT_ROOT /home/balance/balance-infosystems-web/scripts/; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
} 

sind ich erwarte fcgiwrap

/home/balance/balance-infosystems-web/scripts/cpuinfo.sh 

ich hart codiert das Skript Pfad zu debuggen auszuführen aber ich bekomme immer noch den gleichen Fehler.

Was muss in der nginx-Serverkonfiguration geändert werden, damit das Skript korrekt ausgeführt wird?

Antwort

1

Ich entdeckte, dass DOCUMENT_ROOT nicht zurückgesetzt werden kann. Ich habe normalerweise Skripte Verzeichnisse von öffentlich zugänglichen Pfaden entfernt. Ich wusste, dass das Verzeichnis scripts die gleiche Ebene wie das Webverzeichnis war, also habe ich es versucht.

location ~ (\.cgi|\.py|\.sh|\.pl|\.lua)$ { 
    gzip off; 
    autoindex on; 
    fastcgi_pass unix:/var/run/fcgiwrap.socket; 
    fastcgi_param SCRIPT_FILENAME $document_root/../scripts/$fastcgi_script_name; 
    include fastcgi_params ; 
} 

, die das Problem behoben.