Nginx を Apache のリバース プロキシとして使用すると、Php は実行されずにダウンロードを要求される

Nginx を Apache のリバース プロキシとして使用すると、Php は実行されずにダウンロードを要求される

CentOS 7 サーバー上の Apache のリバース プロキシとして Nginx を作成しようとしています。

これまで私がやってきたことは次のとおりです。

Nginx の設定ファイルを作成します。ナノ /etc/nginx/conf.d/default.conf

server {
    listen   80; 

    root /usr/share/nginx/html/; 
    index index.php index.html index.htm;

    server_name _; 

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

    location ~ \.php$ {

    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;

     }

     location ~ /\.ht {
            deny all;
    }
}

2行目を変更conf は、httpd.conf ファイルに記述されています。:

Listen 127.0.0.1:8080
DocumentRoot "/usr/share/nginx/html/" 

/usr/share/nginx/htmlにinfo.phpというファイルを作成し、<?php infophp();?>そこに配置しましたが、ページを読み込もうとするとhttp://My_Ip/info.phpファイルをダウンロードするためのポップアップが表示されますが、ファイルを実行したいのです。

私はこのコマンドを渡しましたhttpd -M | grepphp を実行して、Apache Web サーバーに Php モジュールが存在するかどうかを確認したところ、「php7_module (shared)」と表示されたので、存在すると思われます。

どのような助けでもいただければ幸いです。ありがとうございます。

ヘンリー

追伸:私が行くときhttp://私のIPデフォルトのNginxホームページが表示されます。追記2: 質問者のために、私はすでにserverfaultに関連する問題について投稿しました(エラー403)が、どうやら問題はもうないようです(つまり、http://My_IP/任意のcssファイル.cssたとえば、エラーもなく、きちんと表示されます)

答え1

PHPスクリプトを実行するには、サーバー上でPHP FPMのインスタンスが動作している必要があります。以下を実行して確認できます。

find / -type d -iname *fpm*

結果が返された場合は、すでにインストールされています。次に、リッスンしているポート/ソケットを確認するには、次のコマンドを実行します。

find / -type d -iname *fpm* | xargs grep -r "^listen[= ]"

次のような結果が返されるはずです:

/etc/php/7.2/fpm/pool.d/www.conf:listen = /run/php/php7.2-fpm.sock

Nginxの設定ディレクトリ(通常は/etc/nginx/)にすでにファイルがあるかもしれませんfastcgi_paramsが、ない場合は作成して例をコピーしてください。ここ

次に、php のロケーション ブロックを変更して設定ファイルを含め、前のコマンドから返されたポート/ソケットを使用してリクエストを php fpm に渡します。

location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        include fastcgi_params;
    }

ここで Nginx を再起動すると動作するはずです。

関連情報