0

これについて何を考えるべきか、または原因がよくわからないので、タイトルが誤解を招く場合は申し訳ありません.

初めてNginxをインストールしたばかりで、好奇心から、人気のあるフォーラムソフトウェアを適切に動作させることができるかどうかを確認しようとしました. Vbulletin 4 は、私がホストしている 1 つのコミュニティが使用しているものなので、最初にインストールしてみました。PHPはphp-fpmで扱っています。任意のファイル名またはディレクトリを使用して、作成したばかりの単純な php エコーを表示する任意のカスタム ページを取得できます。たとえば、http://example.com/test/test.phpまたはhttp://example.com/test.php 。

しかし、 http: //example.com/install/install.php にあるインストール スクリプトを使用して vbulletin をインストールしようとすると、ファイルがダウンロードされるだけでした。このドメインの Nginx 構成を 2 回、3 回チェックしたところ、すべてが機能するように見えました。

install.php を数回ダウンロードした後、Chrome のシークレット ウィンドウでそのページにアクセスしてみることにしました。見よ、install.php ページがダウンロードされなくなり、インストーラーが本来あるべき顧客 ID # の入力を求めてきました。次に、メインの Chrome (シークレット モードではない) ウィンドウに戻り、もう一度インストール ページにアクセスしようとすると、install.php が再度ダウンロードされます。

当時使用していた構成は次のとおりです。

server {
    listen       ip:80;
    server_name  my.domain.com;

    location / {
        root /usr/share/nginx/html;
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
            root /usr/share/nginx/html;
            include /etc/nginx/fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_script_name;
    }
}

この問題の原因に関する洞察はありますか? あるセッションでphpファイルのダウンロードを提供し、実際に別のセッションで動的コンテンツを提供する理由を想像できません。ランダムなユーザーが誤ってファイルをダウンロードしたくありません。

4

1 に答える 1

0

あなたの fastcgi_params は少しずれています。スクリプト名として PATH_INFO を設定しました。

試す:

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $document_root
于 2012-10-12T15:07:24.963 に答える