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

(Die Seite wurde neu angelegt: „category:ueberarbeiten Es gibt mehrere Möglichkeiten wie .php-Dateien vom Webserver verarbeitet werden können. Die folgenden Punkte beschreiben die be…“)
 
KKeine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[category:ueberarbeiten]]  
[[category:Webhosting]][[category:fertig]]


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


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 - Vor- und Nachteile:==
=='''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.
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 '''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'''.
Zeile 12: Zeile 14:
Der '''Vorteil''' dabei ist aber die komplette Isolierung zwischen ausgeführten Webserver-Code und PHP-Code.
Der '''Vorteil''' dabei ist aber die komplette Isolierung zwischen ausgeführten Webserver-Code und PHP-Code.


==FPM/FCGI - Unterschied zu CGI==
=='''FPM/FCGI'''==


'''FPM''' ("FastCGI-Prozessmanager") könnte man als Upgrade für CGI beschreiben, da man beide sehr gut miteinander vergleichen kann.
'''FPM''' ("FastCGI-Prozessmanager") könnte man als Upgrade für CGI beschreiben, da man beide sehr gut miteinander vergleichen kann.
Der große Vorteil 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.  
 
'''Hinweis''': Bei neuen Accounts ist PHP-FPM/FCGI schon standardmäßig aktiviert.
 
===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.
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?===
[[Datei:Screenshot DCP für FPM.png|250px]]
Im DCP müssten Sie über "'''Domains'''" -> "'''Subdomains'''" die Domain & und daraufhin Subdomain auswählen, bei der Sie gerne '''FPM/FastCGI''' aktivieren möchten.
[[Datei:Subdomain einstellung.png]]
#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.
#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.
#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.
#An letzter Stelle können Sie ggf. das '''SSL-Zertifikat''' auswählen. Hierzu: https://support.artfiles.de/SSL-Zertifikat
#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. Siehe hier: https://support.artfiles.de/FCGI-Server
== '''mod_php''' ==
Eine weitere Möglichkeit, um PHP-Dateien zu interpretieren, ist das Apache-Modul "mod_php"
Mit diesem Modul ist PHP sozusagen "eingebunden" im Webserver. Es gibt dadurch keinen externen PHP-Prozess, weshalb Apache und PHP besser und somit auch schneller kommunizieren können.
Hierzu auch: https://support.artfiles.de/Userserver

Aktuelle Version vom 10. März 2022, 15:55 Uhr


Es gibt mehrere Möglichkeiten wie PHP-Dateien vom Webserver verarbeitet werden können. Die folgenden Punkte beschreiben die bekanntesten Implementierungsweisen und insbesondere 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.

Hinweis: Bei neuen Accounts ist PHP-FPM/FCGI schon standardmäßig aktiviert.

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. Siehe hier: https://support.artfiles.de/FCGI-Server


mod_php

Eine weitere Möglichkeit, um PHP-Dateien zu interpretieren, ist das Apache-Modul "mod_php" Mit diesem Modul ist PHP sozusagen "eingebunden" im Webserver. Es gibt dadurch keinen externen PHP-Prozess, weshalb Apache und PHP besser und somit auch schneller kommunizieren können.

Hierzu auch: https://support.artfiles.de/Userserver