Nginx / FPM / PHPすべてのphpファイルは「ファイルが見つかりません」と言います。


8

私はちょうどcentos 5.8最終64ビットマシンにnginx 1.1.13とphp 5.4.0をインストールしました。NginxとPHP / Fpmが実行されており、sshコマンドラインを介してphpスクリプトを実行できますが、ブラウザで「ファイルが見つかりません」というメッセージが表示され続けます。すべてのPHPファイルのエラー。

これは私がnginx.confにPHPスクリプトを処理させる方法です:

      location ~ \.php$
      {
              root                    /opt/nginx/html;
              fastcgi_pass            unix:/tmp/fpm.sock;
              fastcgi_index           index.php;
              fastcgi_param           SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
              include                 fastcgi_params;
      }

これは、他のサーバーからの直接のコピー/貼り付けであり、この設定で正常に動作します(ただし、古いバージョンのphp / fpmを実行します)。

これらのエラーが発生するのはなぜですか?


1
気にしないで、それはソートされています。それはばかげた権限の問題でした。
Mr.Boon

回答:


17

「fastcgi_paramsを含める」を挿入します。すべての「fastcgi_param *」行の前に、「include fastcgi_params;」すべての「fastcgi_param *」行を上書きします(nginxデバッグログを参照):

location ~ \.php$ {
    root                    /opt/nginx/html;
    fastcgi_pass            unix:/tmp/fpm.sock;
    fastcgi_index           index.php;
    include                 fastcgi_params;
    fastcgi_param           SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name;
}

3
ああ、私はそれで4時間を無駄にしました、そしてあなたの答えは私を助けました。
エキスパート

私は昨日からこの問題を克服しようとしました。あなたの答えは私を大いに助けてくれました!ありがとうございました!!!
KacperKołodziej14年

1
パスをハードコーディングせずにこれを行うにはどうすればよいですか?$ document_root varsは問題ないようです?
user1179459

3

同じ問題がありました。

これを解決するために私が行ったのは、nginx、php-fpmを実行しているユーザーをチェックし、ルートがあるフォルダーにアクセスするための権限をチェックすることでした。デフォルトは「www-data」です。

ps aux | grep php-fpmps aux | grep nginxコマンドを使用して調べることができます。

これらのプロセスを実行しているユーザーがフォルダにアクセスできることを確認する必要があります。


手がかりをありがとう。Dropboxディレクトリの奥深くにプロジェクトをホストしようとしました。デフォルトでは700の権限がありました。Dropboxの権限を755に変更すると、問題が解決しました。
ロディオンバスカコフ2015

1

私は同じ問題を抱えていました、そして私にとってそれはnginxサーバー設定の誤った設定/存在しない「ルート」ディレクティブでした


1

私はそのような構成を使用します。OS Xで動作します。私としては、@ Xosofoxの答えがうまくいきました。nginx 1.6.2のバージョンを1.2.6と誤って入力したため、ルートが存在しないディレクトリになりました。

location ~ \.php$ {
    fastcgi_intercept_errors on;
    root           /usr/local/Cellar/nginx/1.6.2/html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME /usr/local/Cellar/nginx/1.6.2/html$fastcgi_script_name;
}

0

この問題は、php-fpm.d / www.confの現在のuser:groupでユーザーとグループを変更することで解決します

デフォルトでは、ユーザーとグループは「nginx」です。これを変更してください。

お役に立てれば

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.