web-dev-qa-db-ja.com

NGINXが実行していないPHPファイル

これに対する答えは見つかりませんでした。 PHP5 + NGINX + PHP-FPMをインストールし、phpファイルを実行できない場合、「エラー!このリンクは壊れているようです」と表示されます。 CHROMEのエラー。貴重なエラーログレポートはありません。ルートにindex.phpがあり、カスタムphpinfo.phpファイルを作成してみましたが、どちらも機能しませんでした。

HTMLファイルを読み込むことはできますが、PHPはできません。

これがNGINXの私のローカルサイト設定です:

server {
    listen       80;
    server_name  im;
    access_log /var/www/website/access.log;
    error_log /var/www/website/error.log;

    location / {
        root   /var/www/website;
        index  index.html index.htm index.php;
    }


    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/website$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

}

すべてのディレクトリの所有権をwww-data:www-dataに変更し、phpファイルに777を作成しました。 nginx、FPM、何も再起動しませんでした。

助けて? :(

9

「おっと!このリンクは壊れているようです」と表示されます。 CHROMEのエラー。

エラーページが512バイト未満の場合、Chromeは独自のエラーページを表示します。

fastcgi_paramsに次の行があると思います:

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

その場合、rootディレクティブはlocation /で定義されているため、location ~ \.php$には決して適用されず、SCRIPT_FILENAMEはURIになります。

これは、rootディレクティブをserverレベルのコンテキストに移動することで解決できます。

server {
    listen       80;
    server_name  im;
    access_log /var/www/website/access.log;
    error_log /var/www/website/error.log;

    root   /var/www/website;

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

}
9
quanta