2016-05-20 4 views
0

example.comexample.com/foo/またはexample.com/foo/bar/に行くと、PHPがうまくいっていました。その後、を指すfoo.example.com(DNSはすでに設定されています)を指すようにNginx confを変更しようとしました。それは動作しますが、foo.example.com/bar/にアクセスすると、実行する代わりにfoo/bar/index.phpをダウンロードできます。ここでnginxでサブディレクトリにあるときにPHPが実行されない

はnginxの設定です:

server { 
    listen   80; 
    server_name *.example.com; 
    root /var/www/html/; 


    location/{ 
     index index.html; 
    } 
} 

server { 
    listen   80; 
    server_name foo.example.com; 
    root /var/www/html/foo/; 

    location/{ 
     index index.php; 
     try_files $uri $uri/ /index.php?$args; 
    } 

    location ~ \.php$ { 
     fastcgi_pass web_fpm:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include  fastcgi_params; 
    } 
} 

私は類似したスレッドの多くが、私が働いて読み、それらのどれもがあることを知っています。

+1

最初のサーバ宣言が要求をキャッチし、phpロケーションブロックがないため、nginxはファイルを出力します。 PHPの場所ブロックを追加してもう一度やり直してください。 –

+0

素晴らしい!それを答えさせてください。 ;) –

答えて

0

最初のサーバー宣言が要求をキャッチし、このサーバー宣言にPHPの場所ブロックがないため、Nginxは単にファイルを出力します。最初のサーバー宣言にPHPの場所ブロックを追加する必要があります。

関連する問題