Inhaltsverzeichnis
Definition
cgi" >cgi
FastCgi" >FastCgi
php-cgi" >php-cgi
php-fpm" >php-fpm
Heim Backend-Entwicklung PHP-Tutorial cgi, fastcgi, php-cgi, php-fpm usw

cgi, fastcgi, php-cgi, php-fpm usw

Apr 20, 2018 am 10:52 AM
fastcgi php-cgi php-fpm

Dieser Artikel stellt die Analyse von CGI, FastCGI, PHP-CGI und PHP-FPM vor. Jetzt kann ich ihn mit Ihnen teilen

Definition


Zunächst einmal: Wozu dient CGI? CGI soll sicherstellen, dass die vom Webserver übergebenen Daten in einem Standardformat vorliegen, was für Autoren von CGI-Programmen praktisch ist.

Der Webserver (wie Nginx) ist lediglich ein Verteiler von Inhalten. Wenn beispielsweise /index.html angefordert wird, findet der Webserver die Datei im Dateisystem und sendet sie an den Browser. Dabei handelt es sich um statische Daten. Okay, wenn die Anfrage jetzt /index.php lautet, weiß nginx laut Konfigurationsdatei, dass es sich nicht um eine statische Datei handelt und vom PHP-Parser verarbeitet werden muss, dann wird es die Anfrage einfach verarbeiten und an PHP übergeben Parser. Welche Daten wird Nginx an den PHP-Parser übergeben? Die URL muss vorhanden sein, die Abfragezeichenfolge muss vorhanden sein, die POST-Daten müssen vorhanden sein und der HTTP-Header muss vorhanden sein. Nun, CGI ist das Protokoll, das festlegt, welche Daten übertragen werden sollen und in welchem ​​Format sie übergeben werden sollen das Backend zur Bearbeitung der Anfrage. Überlegen Sie genau, woher die Benutzer kommen, die Sie in Ihrem PHP-Code verwenden.

Wenn der Webserver die /index.php-Anfrage erhält, startet er das entsprechende CGI-Programm, hier ist der PHP-Parser. Als nächstes analysiert der PHP-Parser die Datei php.ini, initialisiert die Ausführungsumgebung, verarbeitet die Anforderung, gibt das verarbeitete Ergebnis in dem von CGI angegebenen Format zurück und beendet den Prozess. Der Webserver gibt die Ergebnisse dann an den Browser zurück.

Okay, CGI ist ein Protokoll und hat nichts mit Prozessen oder ähnlichem zu tun. Was ist also fastcgi? Fastcgi wird verwendet, um die Leistung von CGI-Programmen zu verbessern.

Verbessern Sie die Leistung. Was sind also die Leistungsprobleme von CGI-Programmen? „Der PHP-Parser analysiert die Datei php.ini und initialisiert die Ausführungsumgebung“, das war’s. Standard-CGI führt diese Schritte für jede Anfrage aus (seien Sie nicht müde! Den Prozess zu starten ist sehr ermüdend!), sodass die Bearbeitungszeit jedes Mal relativ lang ist. Das ist offensichtlich unvernünftig! Wie macht Fastcgi das? Zuerst startet Fastcgi einen Master, analysiert die Konfigurationsdatei, initialisiert die Ausführungsumgebung und startet dann mehrere Worker. Wenn eine Anfrage eingeht, leitet der Master diese an einen Worker weiter, der dann sofort die nächste Anfrage annehmen kann. Das vermeidet Doppelarbeit und ist natürlich hocheffizient. Und wenn nicht genügend Arbeiter vorhanden sind, kann der Master je nach Konfiguration mehrere Arbeiter vorab starten und warten. Wenn zu viele Arbeiter im Leerlauf sind, werden natürlich einige gestoppt, was die Leistung verbessert und Ressourcen spart. Dies ist das Prozessmanagement von fastcgi.


cgi

  • Die universelle Gateway-Schnittstelle, der Schnittstellenstandard zwischen externen Programmen und Webservern, ist der Prozess der Informationsübertragung zwischen CGI-Programmen und Webservern

  • Jede Anfrage generiert einen CGI-Prozess. Nachdem das CGI-Programm ausgeführt wurde, wird der Prozess beendet

  • Unabhängig vom Server und der unabhängigen Programmiersprache

FastCgi

  • FastCgi ist wie ein residentes Cgi, es kann dies immer ausführen, solange es aktiviert ist, es ist nicht notwendig, jedes Mal zu forken, und es unterstützt auch verteiltes Computing, das heißt, das FastCgi-Programm kann auf einem anderen Host als dem Website-Server ausgeführt werden und Anfragen von anderen Website-Servern akzeptieren

  • Kann mehrere Anfragen gleichzeitig verarbeiten Zeit

  • Langzeitspeichernutzung

php-cgi

  • PHPs offizieller FastCGI-Prozessmanager

  • Nachdem Sie php.ini geändert haben, müssen Sie php-cgi beenden und dann php.ini starten, damit es wirksam wird. Reibungsloser Neustart nicht möglich

  • Speicher kann nicht dynamisch zugewiesen werden

php-fpm

  • Inoffiziell The fastCgi Der Prozessmanager war offiziell ab PHP 5.4 enthalten. Beim Kompilieren von PHP benötigen Sie nur –enable-fpm, um PHP-FPM zu aktivieren.

  • , wodurch PHP reibungslos neu gestartet werden kann

  • Dynamischer Planungsprozess




Nginx ist nur für die Reverse-Proxy-/Anfrageweiterleitung verantwortlich und nicht für die Verwaltung des PHP-CGI-Prozesses, daher wird Nginx im Allgemeinen mit PHP-FPM verwendet, das den Arbeitsprozess (untergeordneten Prozess) selbst verwalten kann

Muss beachtet werden. Interessant ist, dass PHP-FPM ein unabhängiges SAPI ist, das PHP-CGI nicht verwaltet. Mit anderen Worten: PHP-FPM hat nichts mit PHP-CGI zu tun Der Interpreter und der Unterprozess von php-fpm werden von selbst gespalten. Ja, php-cgi wird nicht aufgerufen. Wenn Sie php-cgi im System löschen, hat dies keine Auswirkungen auf den normalen Betrieb des php-fpm-Dienstes.


php-fpm ist ein Arbeitsprozess unter der PM = statischen Konfiguration. Permanent im Hintergrund, das heißt, wenn Sie 5 Worker-Prozesse pm.max_children = 5 konfigurieren, wird der PHP-FPM-Dienst gestartet, wenn er gestartet wird Verteilt automatisch 5 untergeordnete Prozesse und bleibt im Hintergrund und wird nicht beendet, wenn die Anforderungsverarbeitung abgeschlossen ist. Wenn Sie eine datenbankbeständige Verbindung in einem PHP-Skript verwenden, werden diese 5 Arbeitsprozesse ebenfalls hergestellt und aufrechterhalten 5 dauerhafte Verbindungen zur Datenbank, um die Datenbankverbindung bei der Verarbeitung mehrerer Anfragen wiederzuverwenden, um den Aufbau/die Freigabe einer Datenbankverbindung für jede Anfrage zu vermeiden, was für das Skript in php-fpm vollständig transparent ist. Das Skript muss beim Start nur die Verwendung dauerhafter Verbindungen angeben.

php-fpm arbeitet in der pm = dynamischen Konfiguration [Teil], um im Hintergrund zu bleiben, das heißt, um eine bestimmte Anzahl residenter Prozesse aufrechtzuerhalten automatisch heruntergefahren werden, wenn der Dienst inaktiv ist. Anbieter virtueller Hosts sollten diese Methode bevorzugen.

Kurz gesagt, der PHP-FPM-Betriebsmodus ähnelt dem Prefork MPM und dynamischer Multiprozess-Netzwerkdienst.




php-cgi ist ein früher produzierter FastCGI-Manager von PHP offiziell und wird nicht unterstützt. Wenn Sie php.ini ändern, müssen Sie für einen reibungslosen Neustart das ursprüngliche PHP-CGI beenden und neu starten, damit die dynamische Worker-Planung wirksam wird. Sie können nur angeben, wie viele Worker gestartet werden sollen am Anfang.

php-fpm ist ein FastCGI-Prozessmanager, der erst in 5.3.3 hinzugefügt wurde. Er fügt eine dynamische Planungsfunktion hinzu, die die Anzahl der Arbeitsprozesse je nach Änderung des eingehenden Anforderungsdrucks dynamisch erhöhen oder verringern kann unterstützt den Befehl „reload“, damit der Arbeitsprozess nach der aktuellen Anforderung einen Neustart durchführen kann und die neue php.ini-Konfiguration anwendet.





php54 war vorher eine Beziehung, eine andere Beziehung nach php54.


Vor php54 war php-fpm (Kompilierung von Drittanbietern) der Manager, php-cgi der Interpreter

Nach php54 war php-fpm ( offiziell im Lieferumfang enthalten), Master- und Pool-Modi. php-fpm und php-cgi haben nichts miteinander zu tun. php-fpm ist sowohl ein Dolmetscher als auch ein Manager


Referenzwebsite https://www.zhihu.com/question/55835080

https://segmentfault .com /q/1010000000256516

Verwandte Empfehlungen:

Darstellung der Beziehung zwischen CGI, FastCGI und PHP-FPM

Linux view Das Verzeichnis, in dem sich Nginx, Apache, PHP, PHP-FPM, MySQL und Konfigurationselemente befinden

Das obige ist der detaillierte Inhalt voncgi, fastcgi, php-cgi, php-fpm usw. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So nutzen Sie php-fpm für Hochleistungs-Tuning So nutzen Sie php-fpm für Hochleistungs-Tuning Jul 08, 2023 am 11:30 AM

So verwenden Sie php-fpm zur Hochleistungsoptimierung PHP ist eine sehr beliebte serverseitige Skriptsprache, die häufig zur Entwicklung von Webanwendungen und dynamischen Websites verwendet wird. Wenn jedoch der Datenverkehr zunimmt, kann die Leistung Ihrer PHP-Anwendung leiden. Um dieses Problem zu lösen, können wir php-fpm (FastCGIProcessManager) für eine Hochleistungsoptimierung verwenden. In diesem Artikel wird erläutert, wie Sie mit PHP-FPM die Leistung von PHP-Anwendungen verbessern und Codebeispiele bereitstellen. eins,

So nutzen Sie die PHP-FPM-Optimierung, um die Leistung von PrestaShop-Anwendungen zu verbessern So nutzen Sie die PHP-FPM-Optimierung, um die Leistung von PrestaShop-Anwendungen zu verbessern Oct 05, 2023 pm 12:33 PM

So nutzen Sie die PHP-FPM-Optimierung, um die Leistung von PrestaShop-Anwendungen zu verbessern. Mit der rasanten Entwicklung der E-Commerce-Branche ist PrestaShop zur E-Commerce-Plattform geworden, die von vielen Händlern gewählt wird. Mit zunehmender Ladengröße und zunehmender Anzahl an Besuchen kann es jedoch zu Leistungsengpässen bei der PrestaShop-Anwendung kommen. Um die Leistung der PrestaShop-Anwendung zu verbessern, besteht eine gängige Methode darin, PHP-FPM zu verwenden, um die Verarbeitungsfähigkeiten der Anwendung zu optimieren und zu verbessern. PHP-FPM (FastCGI

So verbessern Sie die Leistung Ihrer WooCommerce-Anwendung mithilfe der PHP-FPM-Optimierung So verbessern Sie die Leistung Ihrer WooCommerce-Anwendung mithilfe der PHP-FPM-Optimierung Oct 05, 2023 am 08:24 AM

So verbessern Sie die Leistung von WooCommerce-Anwendungen mithilfe der PHP-FPM-Optimierung – Übersicht WooCommerce ist ein sehr beliebtes E-Commerce-Plugin zum Erstellen und Verwalten von Online-Shops auf WordPress-Websites. Wenn Ihr Shop jedoch wächst und der Traffic zunimmt, können WooCommerce-Apps langsam und instabil werden. Um dieses Problem zu lösen, können wir PHP-FPM verwenden, um die Leistung von WooCommerce-Anwendungen zu optimieren und zu verbessern. Was ist PHP-FP?

Verwenden Sie den PHP-FPM-Verbindungspool, um die Leistung des Datenbankzugriffs zu verbessern Verwenden Sie den PHP-FPM-Verbindungspool, um die Leistung des Datenbankzugriffs zu verbessern Jul 07, 2023 am 09:24 AM

Überblick über die Verwendung des PHP-FPM-Verbindungspools zur Verbesserung der Datenbankzugriffsleistung: In der Webentwicklung ist der Datenbankzugriff einer der häufigsten und zeitaufwändigsten Vorgänge. Die herkömmliche Methode besteht darin, für jeden Datenbankvorgang eine neue Datenbankverbindung zu erstellen und die Verbindung nach der Verwendung zu schließen. Diese Methode führt zu häufigem Aufbau und Schließen von Datenbankverbindungen, was den Systemaufwand erhöht. Um dieses Problem zu lösen, können Sie die PHP-FPM-Verbindungspooltechnologie verwenden, um die Leistung des Datenbankzugriffs zu verbessern. Prinzip des Verbindungspools: Der Verbindungspool ist eine Caching-Technologie, die eine bestimmte Anzahl von Datenbanken kombiniert

Detaillierte Erläuterung der PHP-FPM-Optimierungsmethode Detaillierte Erläuterung der PHP-FPM-Optimierungsmethode Jul 08, 2023 pm 04:31 PM

PHP-FPM ist ein häufig verwendeter PHP-Prozessmanager, der eine bessere PHP-Leistung und -Stabilität bietet. In einer Hochlastumgebung erfüllt die Standardkonfiguration von PHP-FPM jedoch möglicherweise nicht die Anforderungen, sodass wir sie optimieren müssen. In diesem Artikel wird die Optimierungsmethode von PHP-FPM ausführlich vorgestellt und einige Codebeispiele gegeben. 1. Erhöhen Sie die Anzahl der Prozesse. Standardmäßig startet PHP-FPM nur eine kleine Anzahl von Prozessen, um Anfragen zu bearbeiten. In einer Hochlastumgebung können wir die Parallelität von PHP-FPM erhöhen, indem wir die Anzahl der Prozesse erhöhen.

So nutzen Sie die PHP-FPM-Optimierung, um die Leistung von Phalcon-Anwendungen zu verbessern So nutzen Sie die PHP-FPM-Optimierung, um die Leistung von Phalcon-Anwendungen zu verbessern Oct 05, 2023 pm 01:54 PM

So nutzen Sie PHP-FPM zur Optimierung und Verbesserung der Leistung von Phalcon-Anwendungen. Einführung: Phalcon ist ein leistungsstarkes PHP-Framework, das die Leistung von Anwendungen weiter verbessern kann. In diesem Artikel wird erläutert, wie Sie PHP-FPM verwenden, um die Leistung von Phalcon-Anwendungen zu optimieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist PHP-FPMP? HP-FPM (PHPFastCGIProcessManager) ist ein vom Webserver unabhängiger PHP-Prozess

Was tun, wenn Ubuntu kein PHP-FPM hat? Was tun, wenn Ubuntu kein PHP-FPM hat? Feb 03, 2023 am 10:51 AM

Die Lösung für Ubuntu ohne php-fpm: 1. Fügen Sie die Quelladresse von PHP hinzu, indem Sie den Befehl „sudo apt-get“ ausführen. 2. Überprüfen Sie, ob ein PHP7-Paket vorhanden ist. 3. Installieren Sie PHP, indem Sie den Befehl „sudo apt-get“ ausführen install“-Befehl; 4. Ändern Sie die Konfiguration, um Port 9000 abzuhören, um Nginx-Anfragen zu verarbeiten; 5. Starten Sie „php7.2-fpm“ über „sudo service php7.2-fpm start“.

Was ist PHP-FPM? Wie kann man optimieren, um die Leistung zu verbessern? Was ist PHP-FPM? Wie kann man optimieren, um die Leistung zu verbessern? May 13, 2022 pm 07:56 PM

Was ist PHP-FPM? Der folgende Artikel wird Ihnen helfen, PHP-FPM zu verstehen und Ihnen vorzustellen, was wir bei der Optimierung von PHP-FPM optimieren müssen. Ich hoffe, dass er für alle hilfreich ist!

See all articles