Apache のリバース プロキシを使用した Nginx で PHP ページが動作しなくなった

Apache のリバース プロキシを使用した Nginx で PHP ページが動作しなくなった

私はApache用のリバースプロキシを備えたNginxサーバーをセットアップしました(これに従ってチュートリアル) 数か月前にインストールしました。 Apache 上の nginx 部分も PHP ページもすべて正常に動作しています。

しかし、私はphpにcurlを使う必要があったので、php-curlパッケージをインストールしました。

sudo apt install php-curl

それ以来、すべての PHP ページで「500 内部サーバー エラー」のみが発生します。nginx ページと HTML ページは引き続き正常に動作します。

原因をどうやって見つければいいのかわかりません。パッケージを再度アンインストールして、サービスを再起動しましたsudo systemctl reload apache2(アクティブでsudo systemctl status apache2エラーは表示されません)

ただし、これはエラー ログ ( /var/log/apache2/error.log) に記録されます。

[fastcgi:error] [pid 9587:tid 140151397275200] (2)No such file or directory: [client xxx.xxx.xxx.xxx:49342] FastCGI: failed to connect to server "/usr/lib/cgi-bin/php-fcgi": connect() failed
[fastcgi:error] [pid 9587:tid 140151397275200] [client xxx.xxx.xxx.xxx:49342] FastCGI: incomplete headers (0 bytes) received from server "/usr/lib/cgi-bin/php-fcgi"

PS: 関係があるかどうかはわかりませんが、Ubuntu 21.10 でサーバーをセットアップし、動作しなくなる直前に 22.10 にアップデートしました。アップデート後も間違いなく動作していましたが、アップデート中にサービスが再起動されず、php-curl のインストールによって再起動がトリガーされた可能性があります。

答え1

問題はファイルにあり/etc/apache2/mods-enabled/fastcgi.conf、次のようなものでした:

<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiIpcDir /var/lib/apache2/fastcgi
  AddType application/x-httpd-fastphp .php
  Action application/x-httpd-fastphp /php-fcgi
  Alias /php-fcgi /usr/lib/cgi-bin/php-fcgi
  FastCgiExternalServer /usr/lib/cgi-bin/php-fcgi -socket /run/php/php7.4-fpm.sock -pass-header Authorization
  <Directory /usr/lib/cgi-bin>
    Require all granted
  </Directory>
</IfModule>

私は php8 を実行しているため、 が問題を引き起こすのではないかと疑いましたphp7.4。サーバー上の php バージョンを ( でphp --version) 再確認し、それに応じてそれぞれの行を変更しました。

FastCgiExternalServer /usr/lib/cgi-bin/php-fcgi -socket /run/php/php8.1-fpm.sock -pass-header Authorization

その後、Apache ( sudo systemctl status apache2.service) を再起動すると、再び動作するようになりました。


Aliasフォルダが/usr/lib/cgi-bin/php-fcgi存在しない(/usr/lib/cgi-bin実際には空)というのは、私にとっては依然としてイライラするものです。私はそれが私の問題かもしれないと疑っていました(Apache に PHP-FPM をインストールできません (FastCGI サーバーに接続できませんでした)) で、fastcgi.conf最初にチェックを行いました。しかし、すべてが機能しているようなので、今のところはこれで進めます。

関連情報