PHP-Seiten funktionierten auf Nginx mit Reverse-Proxy für Apache nicht mehr

PHP-Seiten funktionierten auf Nginx mit Reverse-Proxy für Apache nicht mehr

Ich habe einen Nginx-Server mit Reverse-Proxy für Apache eingerichtet (im Anschluss daranLernprogramm) vor einigen Monaten. Alles funktioniert großartig, der Nginx-Teil sowie die PHP-Seiten auf Apache.

Aber ich musste curl für php verwenden und deshalb installierte ich das php-curl-Paket mit

sudo apt install php-curl

Seitdem erhalte ich für alle PHP-Seiten nur noch die Meldung „500 Internal Server Error“. Die Nginx- und HTML-Seiten funktionieren immer noch einwandfrei.

Ich bin nicht sicher, wie ich den Schuldigen dafür finden kann. Ich habe versucht, das Paket erneut zu deinstallieren und den Dienst neu zu starten sudo systemctl reload apache2(er ist aktiv und sudo systemctl status apache2zeigt keinen Fehler an).

Dies steht jedoch in den Fehlerprotokollen ( /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: Ich bin mir nicht sicher, ob das relevant ist, aber ich habe den Server auf Ubuntu 21.10 eingerichtet und kurz bevor er nicht mehr funktionierte auf 22.10 aktualisiert. Nach dem Update funktionierte er definitiv noch, aber vielleicht wurden die Dienste während des Updates nicht neu gestartet und die Installation von php-curl hat einen Neustart ausgelöst?

Antwort1

Das Problem lag in der Datei /etc/apache2/mods-enabled/fastcgi.conf, die für mich folgendermaßen aussah:

<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>

Da ich php8 verwende , vermutete ich, dass dies php7.4Probleme verursachen könnte. Ich habe die PHP-Version auf dem Server (mit ) noch einmal überprüft php --versionund die entsprechende Zeile entsprechend geändert:

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

Ich habe dann Apache ( sudo systemctl status apache2.service) neu gestartet und jetzt scheint es wieder zu funktionieren.


Es ärgert mich immer noch, dass der AliasOrdner /usr/lib/cgi-bin/php-fcginicht existiert ( /usr/lib/cgi-biner ist tatsächlich leer). Ich vermutete, dass das mein Problem sein könnte (siehePHP-FPM kann auf Apache nicht installiert werden (Verbindung zum FastCGI-Server fehlgeschlagen)fastcgi.conf), was zunächst geprüft wurde . Aber da alles zu funktionieren scheint, werde ich es vorerst einfach so belassen.

verwandte Informationen