Nginx

php-fastcgi 狀態:“未指定輸入文件”

  • October 24, 2016
# grep pm.status_path /etc/php5/fpm/pool.d/www.conf
pm.status_path = /fcgi-status

nginx配置:

location ~ ^/(fcgi-status|ping)$ {
    access_log off;
    allow 127.0.0.1;
    deny all;
    fastcgi_param SCRIPT_FILENAME /path/$fastcgi_script_name;
    fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
}

fastcgi_param 和 fastcgi_pass 與適用的網站相同。

php-fastcgi 和 nginx 已重新啟動,但是:

# curl http://127.0.0.1/fcgi-status -i
HTTP/1.1 404 Not Found
Server: nginx/1.10.1
Date: Tue, 18 Oct 2016 08:10:03 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.5.9-1ubuntu4.20

No input file specified.

這不是這個問題的重複,因為錯誤不是“找不到文件”(也許 nginx 無法找到路徑),而是“沒有指定輸入文件”。請注意,響應中有php標頭,因此答案不是來自 nginx,而是來自 php-fpm。

這是伺服器上唯一的池。

我究竟做錯了什麼?

最終發現:我搞砸了fpm和fast-cgi。配置更改是在 fpm 中進行的,但我執行的是 fast-cgi。

fastcgi_param SCRIPT_FILENAME在其中有一個路徑前綴,但是在php-fpm配置中您沒有前綴。

因此,您需要更改其中任何一個以使它們相同。

引用自:https://serverfault.com/questions/809694