Ich versuche, PHP mit fpm auf Macports zu installieren. Ich habe irgendwo gelesen, dass fpm FastCGI-Prozessmanager bedeutet. Bedeutet das, dass fastcgi und fpm gleich sind? Wenn sie gleich sind, warum haben wir dann zwei verschiedene Macports-Varianten für PHP, nämlich
“php5 +fastcgi” und
“php5 +fpm”
Was ist der Unterschied zwischen fastcgi und fpm?
Deepan Chakravarthy
ircmaxell
FPM ist ein Prozessmanager zur Verwaltung der FastCGI SAPI (Server API) in PHP.
Im Grunde ersetzt es die Notwendigkeit für so etwas SpawnFCGI. Es spawnt die FastCGI-Kinder adaptiv (was bedeutet, dass mehr gestartet werden, wenn die aktuelle Last dies erfordert).
Ansonsten gibt es keinen großen Betriebsunterschied zwischen FastCGI (die Anforderungspipeline vom Beginn der Anforderung bis zum Ende ist dieselbe). Es ist nur dazu da, die Implementierung zu vereinfachen.
-
Ein wesentlicher Vorteil von php-fpm besteht darin, dass ein APC-Cache von mehreren Prozessen gemeinsam genutzt werden kann. Bei fcgid ist der APC-Cache pro Prozess. Die Verwendung von fpm kann zu großen Speichereinsparungen führen, sodass Sie diesen eingesparten Speicher verwenden können, um mehr Prozesse zu erzeugen und mehr Datenverkehr zu bedienen.
– cam8001
18. Juni 2013 um 16:41 Uhr
-
@cam8001: das stimmt überhaupt nicht. Du kannst einsteigen
SpawnFCGI
wie viele Prozesse erzeugt werden sollen und wie viele PHP-Kinder pro Prozess vorhanden sind. Das Spawnen eines PHP-Prozesses mit 100 untergeordneten Elementen ist also dasselbe wie die Verwendung von FPM mit 100 untergeordneten Elementen … Das Gegenteil ist jedoch der Fall. Wenn FPM getötet wird (segfault, was auch immer), stirbt Ihr gesamter Arbeiter. Wenn in SpawnFCGI einer der Prozesse stirbt, kann der Rest am Leben bleiben … Es ist also nicht klar, dass einer besser ist als der andere. Unterschiedliche Ansätze. FPM wird nicht aus technischen Gründen empfohlen, sondern weil es neben dem Kern gepflegt wird (eigentlich darin) …– ircmaxell
18. Juni 2013 um 16:47 Uhr
Weltraumaffe
Was Anthony sagt, ist absolut richtig, aber ich möchte hinzufügen, dass Ihre Erfahrung wahrscheinlich eine viel bessere Leistung und Effizienz zeigen wird (aufgrund nicht fpm
-vs-fcgi
sondern mehr auf die Umsetzung Ihrer httpd
).
Zum Beispiel hatte ich eine Quad-Core-Maschine am Laufen lighttpd
+ fcgi
schön mitsummen. Ich habe auf einen 16-Core-Rechner aufgerüstet, um mit dem Wachstum fertig zu werden, und zwei Dinge sind explodiert: RAM-Nutzung und Segfaults. Ich fand mich neu starten lighttpd
alle 30 Minuten, um die Website aufrechtzuerhalten.
Ich wechselte zu php-fpm und nginx, und die RAM-Nutzung sank von > 20 GB auf 2 GB. Segfaults verschwanden ebenfalls. Nachdem ich einige Nachforschungen angestellt hatte, erfuhr ich, dass lighttpd und fcgi auf Multi-Core-Rechnern unter Last nicht gut miteinander auskommen und in bestimmten Fällen auch Probleme mit Speicherlecks haben.
Liegt das daran php-fpm
besser sein als fcgi
? Nicht ganz, aber wie du hakt dich ein php-fpm
scheint eine ganze Menge effizienter zu sein als die Art und Weise, wie Sie über dienen fcgi
.
-
Sind solche Probleme bis etwa (April 2017)?
– Herr Loh.
31. März 2017 um 19:14 Uhr
-
Alle Aktualisierungen der von Ihnen verwendeten Version von lighttpd und fpm werden empfohlen, alle Aktualisierungen der erwähnten Probleme, die noch auftreten (Juni 2018), sind ebenfalls hilfreich für die Community.
– Ima
10. Juni 2018 um 6:23 Uhr
Das Ausführen von PHP als CGI bedeutet, dass Sie Ihrem Webserver im Grunde den Speicherort der ausführbaren PHP-Datei mitteilen, und der Server führt diese ausführbare Datei aus
wohingegen
PHP FastCGI Process Manager (PHP-FPM) ist ein alternativer FastCGI-Daemon für PHP, der es einer Website ermöglicht, anstrengende Lasten zu bewältigen. PHP-FPM verwaltet Pools (Worker, die auf PHP-Anfragen antworten können), um dies zu erreichen. PHP-FPM ist für Mehrbenutzer-PHP-Umgebungen schneller als herkömmliche CGI-basierte Methoden wie SUPHP
Es gibt jedoch Vor- und Nachteile für beide und man sollte je nach seinem spezifischen Anwendungsfall wählen.
Ich habe Informationen zu diesem Link für gefunden fastcgi gegen fpm sehr hilfreich bei der Auswahl des in meinem Szenario zu verwendenden Handlers.