59604


お世話になっております。  
Apacheをインストールして、Nginxをリバースプロキシとして利用しています。  
この環境にPHP7.3-fpmを組み込んだのですが、存在しないPHPファイルにアクセスすると、下記のエラーが表示されます。

[code]

    No input file specified.
    
[/code]

これをApacheの404エラーページが表示されるようにするには、どうしたらよいでしょうか。  
ちなみに、Nginxの設定ファイルを一部抜粋して掲載します。

[code]

    server {
      root /home/example/public_html/example.com;
      server_name example.com;
      client_max_body_size 20M;
    
      location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect off;
      }
    
      location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
      }
    }
    
[/code]

環境は、Ubuntu 18.04、Apache 2.4.29、Nginx 1.16.1です。  
以上、よろしくお願いいたします。


CC BY-SA 4.0
2019-10-07T14:36:50.863
59541
2019-10-09T14:57:12.303
29034
question
php apache nginx
Nginx+Apache環境でのPHP7.3-fpmの動作について


パスが **.php** のときに、`if` 文を使って、ファイルが存在しなければ別の処理をするようにします。  
Nginx で 404 を返す例です。

[code]

    location ~ \.php$ {
        if (!-f $request_filename) {
            return 404;
        }
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
[/code]

Apache で 404 を返すのであれば、`return 404` の替わりに `proxy_pass` を使うとできそうです。


CC BY-SA 4.0
2019-10-09T14:57:12.303
59604
2019-10-09T14:57:12.303
4603
59541
answer