10

以下は私のnginx.confです。

存在しないファイルの場合は問題なく/index.php提供されます。

しかし、私のURLが/foo/bar => /foo/bar/index.phpダウンロードを介してPHPソースコードとして提供されている場合。

何か案は?

try_files $uri $uri/ $uri/index.php /index.php;

location ~ \.php$ { 
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
4

3 に答える 3

4

解決策は、インデックスindex.phpを追加することでした

    index index.php

    try_files $uri $uri/ $uri/index.php /index.php;

    location ~ \.php$ { 
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
于 2012-08-23T15:08:32.640 に答える
1

私の設定

index index.html index.htm index.php;
location ~ \.php$ {
        fastcgi_pass unix:/tmp/php-fpm.sock;
        include fastcgi_params;
      }

nginxとfastcgiの両方をリロードします

于 2012-08-23T13:29:29.233 に答える
0

私も同じ問題を抱えていました。PHPコンテキストで次の場合(location ~ ^(.+\.php)(.*)$ { ...):

try_files $fastcgi_script_name =404;

..常に404を返しました。最後に、try_filesのドキュメントを読みました。

ファイルへのパスは、ルートおよびエイリアスディレクティブに従ってファイルパラメータから作成されます。

alias私はロケーションブロックごとに定義しただけで(もちろん、PHP-FPMブロックには定義していませんでした)、全体的なrootセットがどこにもなかったため、NGiNXはファイルを探す場所を知りませんでした。サーバーブロックのルートを設定すると、サーバーブロックが機能し始めました。

于 2014-09-26T17:38:26.787 に答える