FastCGIがstderrで送信されました:アップストリームから応答ヘッダーを読み取っているときに「プライマリスクリプトが不明です」
Fastcgi Sent Stderr
fastCGIのサポートをnginxに追加した後、phpページの検証で、ページが認識されていないことがわかりました。状況が明確ではなく、グーグルで検索しました。これはNginxの組み込み変数のせいです。
1.プラットフォームの概要:
1 2 3 4 5 6 | OS Version: CentOS release 6.4 (Final) Nginx Version: nginx version: nginx/ 1.4 . 3 PHP Version: PHP 5.5 . 5 (fpm-fcgi) Mysql Version: Server version: 5.6 . 10 -log Source distribution Kernel Version: 2.6 . 32 - 358 .el6.x86_64 IP address: 192.168 . 168.133 |
1 |
2、エラーメッセージ:
1 | 2013/10/22 20:05:49 [error] 12691#0: *6 FastCGI sent in stderr: 'Primary script unknown' while reading response header from upstream, client: 192.168.168.1, server: localhost, request: 'GET / HTTP/1.1', upstream: 'fastcgi://127.0.0.1:9000', host: '192.168.168.133' |
3.エラーの原因と解決策:
メイン構成ファイルの69行目は、呼び出し元のスクリプトファイルへのパスを定義しています。
1 | fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name |
Nginxは/ scriptsパスを認識しないため、phpinfo認証情報は正常に渡されません。次のように変更する必要があります。
1 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name |
注意:
$ document_rootは、現在のリクエストのルートコマンドで指定された値を表します。
私たちはシステムのデフォルトのためにここにいます、
1 2 3 4 | location / { root /usr/local/nginx/html index index.php index.html index.htm } |
したがって、ステートメントは/ usr / local / nginx / htmlディレクトリ内のphpファイルに対して解析されます。
その後、ページビューは再びOKになりました。
参考記事:
転載:https://www.cnblogs.com/wanglijun/p/8777945.html