NginxでこのWebサーバーを継承し、ここで新しい基本的なPHPサイト設定を取得しようとしています。
ここの指示に従いました。 https://Gist.github.com/GhazanfarMir/03bd1f1f770a3834d47274586d46ea62
私は自分のディレクトリにあるファイルだけでHTMLファイルを読み取ることができます。 PHPファイルの場合、ウェブページに次のエラーが表示されます。
入力ファイルが指定されていません。
これを解決する方法がわかりません。私のconfファイルには、PHPおよびルートセクションの構成があります。
location / {
root /var/www/mydomain.org/html;
index index.html index.htm index.php;
try_files $uri/index.html $uri.html $uri @app;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
「入力ファイルが指定されていません」というエラーメッセージは、ほとんどの場合、SCRIPT_FILENAME
の値がファイルを指していないためです。 location ~ \.php$
はドキュメントルートを知っている必要があり、変数$request_filename
はドキュメントルートと現在のURIを連結することによって構築されます。
location /
ブロックのドキュメントルートを定義しましたが、location ~ \.php$
ブロックは定義していません。通常、これらは同じ値であるため、単一のroot
ステートメントを周囲のブロックに配置し、値を上書きしないすべてのlocation
ブロックに継承することができます。
例えば:
root /var/www/example.org/html;
location / {
index index.html index.htm index.php;
try_files $uri/index.html $uri.html $uri @app;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $request_filename;
}
location @app {
...
}
詳細は このドキュメント を参照してください。