Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Benutzeravatar
jmar83
Beiträge: 897
Registriert: 20.06.2013 20:20:15
Wohnort: CH
Kontaktdaten:

Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von jmar83 » 03.08.2022 11:47:12

Hallo zusammen

Es geht darum dass wir ein paar ältere Webserver am laufen habe bei denen PHP > v7.0 nicht mehr offiziell unterstützt wird. Nun habe ich erfahren, dass man über PHP-FPM sowie mod_fcgid die beiden Teile Webserver UND PHP-Engine aufsplitten kann - der PHP-Server wäre dann ein reiner Application Server und würde nicht mehr auf der gleichen Maschine/IP/OS laufen wie der Webserver.

ALLE (!!) Anleitungen schlagen fehl... das Ganze scheint praktisch betrachtet eher ein schlechter Witz zu sein - oder hat das schon mal jemand hingekriegt?

Ständig "File not Found" - es scheint irgendwie so zu sein, dass der Dateipfad vom Webserver an den PHP-FPM-App-Server weitergegeben wird und PHP-FPM-App-Server dann versucht den Dateipfad LOKAL (also bei sich selbst) aufzurufen - völlig sinnlos sowas, dabei geht's in diesem Szenario um ALLES ANDERE (!!) als den PHP-Dateipfad auf dem PHP-FPM-App-Server lokal aufzurufen:

Es geht vielmehr darum, dass der Webserver (Maschine A) den Inhalt der darauf vorliegenden PHP-Datei per REMOTE_IP:9000 auf den PHP-FPM-Application-Server (Maschine B) weiterreicht und der PHP-FPM-Application-Server das Ganze interpretiert und dann das Ergebnis wieder am den Webserver (Maschine A) zurückgibt.

Weiss jemand, wie das genau geht? Besten Dank für eure Feedback(s)... :-)
Freundliche Grüsse, Jan

Benutzeravatar
jmar83
Beiträge: 897
Registriert: 20.06.2013 20:20:15
Wohnort: CH
Kontaktdaten:

Re: Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von jmar83 » 03.08.2022 11:49:17

Wie sieht's mit "libapache2-mod-fastcgi" anstelle von "libapache2-mod-fcgid" aus? Wird der Remote PHP-FPM application Server davon auch unterstützt - theoretisch zumindest? Oder eher nicht?
https://github.com/berenddeboer/libapac ... i/issues/1
Freundliche Grüsse, Jan

Benutzeravatar
jmar83
Beiträge: 897
Registriert: 20.06.2013 20:20:15
Wohnort: CH
Kontaktdaten:

Re: Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von jmar83 » 03.08.2022 11:52:01

Maschine A = Alter Windows Server mit PHP 7.0
Maschine B = Allerneustes Debian 11 mit installiertem php7.4-fpm-Paket und

-OHNE allowedips-Eintrag (=ALLE ZUGELASSEN) in der Datei www.pool unter /etc/php/fpm/...

SOWIE

- BIND = 0.0.0.0 (also nicht nur localhost / 127.0.01)


-> Externes telnet auf den PHP-FPM-App-Server mit "telnet IP_ADRESSE 9000" gibt zumindest Antwort.
Freundliche Grüsse, Jan

Benutzeravatar
TRex
Moderator
Beiträge: 7313
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von TRex » 03.08.2022 18:20:31

https://serversforhackers.com/c/php-fpm ... -directive

Probiers mal mit nginx, dann kannst du wenigstens sicher sein, dass der FPM-Server richtig konfiguriert ist. Dem Artikel nach soll das wohl tun.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
heisenberg
Beiträge: 2314
Registriert: 04.06.2015 01:17:27

Re: Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von heisenberg » 03.08.2022 21:37:32

Habe ich da wirklich Windows-Webserver mit PHP gelesen? Würg! Kotz! Wer tut sich dass denn an?

2 Möglichkeiten, um damit zu arbeiten:
  • Du installierst eine/mehrere alte Debianversionen mit entsprechend alten PHP-Versionen auf separaten VMs.
  • Du nutzt Docker und installierst pro unterschiedlich benötigter Anwendung einen Container. Vermutlich brauchst Du auch entsprechende Datenbankcontainer, weil die alten PHP-Versionen nicht mit den neuen MySQL-/MariaDB-Versionen zurecht kommen. Auf der Hostebene ist ein Webserver(meine Empfehlung wäre auch nginx), der als ReverseProxy die Schnittstelle zwischen Domains und Containern ist.

Mozie
Beiträge: 30
Registriert: 20.05.2015 13:09:39

Re: Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von Mozie » 04.08.2022 08:04:18

Hallo,

Du schreibst:
jmar83 hat geschrieben: ↑ zum Beitrag ↑
03.08.2022 11:47:12
Ständig "File not Found" - es scheint irgendwie so zu sein, dass der Dateipfad vom Webserver an den PHP-FPM-App-Server weitergegeben wird und PHP-FPM-App-Server dann versucht den Dateipfad LOKAL (also bei sich selbst) aufzurufen - völlig sinnlos sowas, dabei geht's in diesem Szenario um ALLES ANDERE (!!) als den PHP-Dateipfad auf dem PHP-FPM-App-Server lokal aufzurufen:
Und genau diese Funktionsweise ist auch richtig!

Du rufst eine Website auf, dein Webserver versucht dir diese aufgerufene Datei (im Regelfall index.html oder index.php) zurückzugeben. Rufst du eine *.html Datei auf, kann der Webserver dir diese auch direkt zurückgeben, da dein Browser diese interpretieren muss. Rufst du aber eine *.php Datei auf, kann der Webserver diese selbst nicht interpretieren und sendet deshalb eine Aufforderung an den PHP-Interpreter, der diese Datei /var/www/html/xyz.php auszuführen und die Rückgabe dem Webserver zurückzugeben soll. Der PHP-Interpreter versucht nun die Datei auf dem mitgegebenen Pfad des Webservers zu öffnen (im Beispiel /var/www/html/xyz.php), wenn er diese nicht lokal findet, kann er diese auch nicht öffnen.
Der Webserver kann keine Dateien an den PHP-Interpreter weiterreichen, oder was denkst du wie includes in PHP sonst geöffnet werden können? Die werden alle lokal vom PHP-Interpreter versucht zu öffnen und nicht vom Webserver.
Die Web-Daten müssen also dem Webserver und dem Server, auf dem der PHP-Interpreter läuft, zur Verfügung stehen!

Mein Vorschlag:
Auf dem Debian Server läuft ein Proxy (bspw. NGINX, wie bereits von anderen Mitgliedern geschrieben), der die Anfragen an deinen Windows Server weiter reicht. Auf diesem befindet sich ein weiterer Webserver (NGINX oder Apache) und der PHP-Interpreter mit den entsprechenden Webserver Dateien.

Ich hoffe ich habe keinen Mist geschrieben und es verständlich erklärt.
Grüße
Micha

Benutzeravatar
jmar83
Beiträge: 897
Registriert: 20.06.2013 20:20:15
Wohnort: CH
Kontaktdaten:

Re: Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von jmar83 » 04.08.2022 09:18:33

Hallo Micha

Besten Dank für dein Feedback! :-)

Folgende 2 Fragen bleiben für mich offen:

- Man sieht (sind zwar eher rar) Beispiele bei denen nicht localhost:9000 oder 127.0.0.1:9000 verwendet wird, sondern eine andere IP. (also ein anderer Rechner / dez. PHP-FPM Application Server)

- Was bringt es, über den lok. TCP/IP-Stack zu gehen, wenn das ALLEINE gar nicht ausreicht - für was verwendet man dann 127.0.0.1:9000 oder localhost:9000 - wenn noch andere "Kanäle" (wie Filesystem I/O) notwendig sind. (Wie diese "File not found"-Meldung bezeugt)


Irgendwie ergibt die ganze PHP-FPM-Geschichte mit TCP & localhost für mich deswegen wenig bis keinen Sinn. Ziemlich schräg m.E., eine solche "Architektur" (also in Anführungszeichen)
Freundliche Grüsse, Jan

Mozie
Beiträge: 30
Registriert: 20.05.2015 13:09:39

Re: Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von Mozie » 04.08.2022 13:03:32

Hi,

hier kann ich nur vermuten:
jmar83 hat geschrieben: ↑ zum Beitrag ↑
04.08.2022 09:18:33
- Man sieht (sind zwar eher rar) Beispiele bei denen nicht localhost:9000 oder 127.0.0.1:9000 verwendet wird, sondern eine andere IP. (also ein anderer Rechner / dez. PHP-FPM Application Server)
  • Ich kann mir nur vorstellen, wenn Skripte eine sehr lange Laufzeit haben, werden diese auf unterschiedliche Server verteilt. (wie gesagt ist eine Vermutung)

Hier habe ich lange gegoogelt und habe eine Antwort gefunden :THX:
jmar83 hat geschrieben: ↑ zum Beitrag ↑
04.08.2022 09:18:33
- Was bringt es, über den lok. TCP/IP-Stack zu gehen, wenn das ALLEINE gar nicht ausreicht - für was verwendet man dann 127.0.0.1:9000 oder localhost:9000 - wenn noch andere "Kanäle" (wie Filesystem I/O) notwendig sind. (Wie diese "File not found"-Meldung bezeugt)
  • Kurz gesagt: Auf Windows gibt es keine Sockets, da musst du CGI mit TCP/IP verwenden.
  • Innerhalb Linux-Umgebungen solltest du Sockets nutzen. Sockets sind schneller als TCP/IP, da hier die CGI Befehle noch extra eingepackt werden müssen
Viele Grüße
Micha

Benutzeravatar
jmar83
Beiträge: 897
Registriert: 20.06.2013 20:20:15
Wohnort: CH
Kontaktdaten:

Re: Externer PHP Application Server mit PHP-FPM sowie mod_fcgid

Beitrag von jmar83 » 04.08.2022 13:05:08

Vielen vielen Dank!! :THX: :THX: :THX:
Freundliche Grüsse, Jan

Antworten