一般的なNginx + PHPエラーメッセージ “入力ファイルが指定されていません。”


image

nginx.conf

http {
    include       mime.types;
    default__type  application/octet-stream;

    server {
        listen       80;
        server__name  localhost;

        location/{
            root www;
            index  index.html index.htm;
        }

        location ~ \.php$ {
            fastcgi__pass   127.0.0.1:9999;
            fastcgi__index  index.php;
            fastcgi__param  SCRIPT__FILENAME  $document__root$fastcgi__script__name;
            include        fastcgi__params;
        }

    }

}

Nginxでテスト済み1.12.1 PHP 7.1

解決策

PHPは

.php`ファイルを見つけることができません。なぜなら

location/{}

のルートファイルパスは

location〜\ .php $ `には適用されないからです。

それを解決するには、ルートファイルパスを次のようにserverブロックに移動します。

nginx.conf

http {
    include       mime.types;
    default__type  application/octet-stream;

    server {
        listen       80;
        server__name  localhost;

        # Move the root file path to server block.
        root www;

        location/{
            #root www;
            index  index.html index.htm;
        }

        location ~ \.php$ {
            fastcgi__pass   127.0.0.1:9999;
            fastcgi__index  index.php;
            fastcgi__param  SCRIPT__FILENAME  $document__root$fastcgi__script__name;
            include        fastcgi__params;
        }

    }

}

参考文献

  1. リンク://nginx/nginx-php-on-windows/[WindowsのNginx + PHP]


  2. https://www.nginx.com/resources/wiki/start/topics/examples/phpfastcgionwindows/

    [PHP-FastCGI

Windows上で]