Vorteile von PHP-FPM/FCGI: Unterschied zwischen den Versionen

KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 32: Zeile 32:


#Hier wählen Sie "'''Lokales Verzeichnis'''" aus, falls das nicht bereits schon eingestellt ist.
#Hier wählen Sie "'''Lokales Verzeichnis'''" aus, falls das nicht bereits schon eingestellt ist.
#Falls "Lokales Verzeichnis" bereits eingestellt war, brauchen Sie hier nichts ändern, ansonsten müssten Sie hier das Home-Verzeichnis Ihrer Subdomain auswählen.
#Falls "Lokales Verzeichnis" bereits eingestellt war, brauchen Sie hier nichts ändern, ansonsten müssten Sie hier das '''Home-Verzeichnis''' Ihrer Subdomain auswählen.
#An dieser Stelle kommt der entscheidende Schritt und hier können Sie "'''CGI'''" auf "'''FPM/FastCGI'''" umstellen.
#An dieser Stelle kommt der entscheidende Schritt und hier können Sie "'''CGI'''" auf "'''FPM/FastCGI'''" umstellen.
#Hier können Sie die gewünschte '''PHP-Version''' einstellen. Die Default-Einstellung wäre hierbei 7.4.
#Hier können Sie die gewünschte '''PHP-Version''' einstellen. Die Default-Einstellung wäre hierbei 7.4.

Version vom 17. November 2021, 16:26 Uhr


Es gibt mehrere Möglichkeiten wie php-Dateien vom Webserver verarbeitet werden können. Die folgenden Punkte beschreiben die bekanntesten Implementierungsweisen und besonders die Vorteile von PHP-FPM/FCGI im Vergleich zu CGI:

CGI

Das "Common Gateway Interface" (kurz "CGI") ermöglicht es, Daten zwischen Webservern und externen Programmen auszutauschen und so die Funktionalität einer Webseite zu erweitern. Das heißt, HTML-Seiten müssen nicht fertig auf dem Server zur Verfügung stehen und bei Bedarf heruntergeladen werden, sondern werden vom CGI-Programm dynamisch erzeugt, sobald eine entsprechende Anfrage erfolgt.

Vor- und Nachteile

Der Nachteil dieser ganzen Geschichte ist, dass der Webserver pro Anfrage einen neuen Prozess startet. Dadurch werden bei jeder Anfrage alle PHP-Module (bspw. php.ini) neu geladen und durchgeführt. Das ganze ist dementsprechend ineffizient und verläuft deutlich langsamer.

Der Vorteil dabei ist aber die komplette Isolierung zwischen ausgeführten Webserver-Code und PHP-Code.

FPM/FCGI

FPM ("FastCGI-Prozessmanager") könnte man als Upgrade für CGI beschreiben, da man beide sehr gut miteinander vergleichen kann.

Unterschiede zu CGI

Der Unterschied von FPM ("FastCGI-Prozessmanager") zu CGI ist, dass hier nicht pro Request eine neue PHP-Instanz gestartet wird, sondern es schon "fertige" PHP-Instanzen gibt, denen nur die angefragte PHP-Datei übergeben wird. Dieser Vorteil bringt demnach eine deutlich bessere Performance für php-basierte Webseiten und führt auch dazu, dass der Webserver mehr gleichzeitige Seitenanfragen verarbeiten kann.


Wie stelle ich meine Domain auf FPM um?

Screenshot DCP für FPM.png

Im DCP müssten Sie über "Domains" -> "Subdomains" die Domain & und daraufhin Subdomain auswählen, bei der Sie gerne FPM/FastCGI aktivieren möchten.

Subdomain einstellung.png

  1. Hier wählen Sie "Lokales Verzeichnis" aus, falls das nicht bereits schon eingestellt ist.
  2. Falls "Lokales Verzeichnis" bereits eingestellt war, brauchen Sie hier nichts ändern, ansonsten müssten Sie hier das Home-Verzeichnis Ihrer Subdomain auswählen.
  3. An dieser Stelle kommt der entscheidende Schritt und hier können Sie "CGI" auf "FPM/FastCGI" umstellen.
  4. Hier können Sie die gewünschte PHP-Version einstellen. Die Default-Einstellung wäre hierbei 7.4.
  5. Wählen Sie den User, mit dessen UID der Serverprozess gestartet werden soll (der Server hat Zugriff auf alle Dateien dieses Users). Sollte Ihnen hier nur der Hauptuser angezeigt werden, haben Sie entweder keine zusätzlichen DCP-User angelegt oder für Ihren Account sind keine strikten DCP-User-Gruppen eingerichtet.
  6. An letzter Stelle können Sie ggf. das SSL-Zertifikat auswählen. Hierzu: https://support.artfiles.de/SSL-Zertifikat
  7. Nun klicken Sie auf "Übernehmen" und Ihr FPM/FCGI-Server ist eingerichtet.

Wenn das alles eingerichtet ist, müssen Sie die php.ini-Direktiven (falls vorhanden) unter "Webspace" -> "FCGI-Server" einstellen und einfügen.