nginxのと$ DOCUMENT_ROOTの最後のスラッシュ?
質問
私はnginxのために次の構成を使用します。 http://gist.github.com/340956する
しかし、この構成では、PHPとNo input file specified
エラーが発生します。私はそれを解決することができた唯一の方法は、この行を変更することである。
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
$document_root
と$fastcgi_script_name
の間で "/" に注意してください。私は、これは間違った構成であるが、誰も私の設定は、この余分なスラッシュが必要と正確な理由を教えすることができなかったことを知らされました。
私は、余分なスラッシュを取り除くことができますどのように?
解決
だけが(RHEL6サーバー上でnginxの+ PHP-FPMのレミインストールで)同じ問題に直面して、あなたは、/ etc / nginxの/ fastcgi_params
で、次の行を追加して、それを解決することができますfastcgi_param SCRIPT_FILENAME $request_filename;
完璧に取り組んでDebianのnginxの中に存在しながら、私は、RHELに欠けているこの行を見つけます。
他のヒント
のparam PATH_TRANSLATED
は正しいURIを取得していますか?私はそれは計算しないconfファイル内の変数の即時連接だと思っています。それらの間にスラッシュを追加する場合は、おそらく彼らは正しく解釈されます。
あなたがエラーNo input file specified
を取得すると、URIが要求されたものを見るためにあなたのログをチェックします。
3行目で削除try_files $uri index.php$uri;
ます。
好みの問題。限り、あなたは一貫しているとして、いずれかの方法で結構です。
いずれの構成ファイルにスラッシュを追加し、追加のスラッシュが末尾に存在しないことを確認し、文書ルートとスクリプト名をそれぞれ、またはその逆の開始
何が起こるので、同様ます:
location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(.*)$;
include fastcgi.conf;
root /var/www/my_webroot;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}