Heim  >  Artikel  >  PHP-Framework  >  Vortrag eines Arbeiters über verschiedene Betriebsmodi in PHP

Vortrag eines Arbeiters über verschiedene Betriebsmodi in PHP

藏色散人
藏色散人nach vorne
2019-11-26 14:04:062332Durchsuche

Die folgende Spalte des Workerman-Nutzungs-Tutorials stellt Ihnen verschiedene Betriebsmodi in PHP vor. Ich hoffe, dass es für Freunde in Not hilfreich sein wird!

Vortrag eines Arbeiters über verschiedene Betriebsmodi in PHP

Wir wissen, dass das Workerman-Programm im PHP-CLI-Modus ausgeführt werden muss, dem Befehlszeilenmodus. Wir müssen dies verstehen. Es wird gesagt, dass PHP derzeit über 4 Betriebsmodi verfügt, nämlich CGI, FastCGI, CLI und Webmodulmodus.

CGI

Der vollständige Name ist „Common Gateway Interface“, das es einem Client ermöglicht, von einem Webbrowser zu einem Programm zu wechseln, das auf einem Webserver läuft fordert Daten an, die einen Standard für die Datenübertragung zwischen dem Client und dem Programm beschreiben. Darüber hinaus ist CGI sprachunabhängig und kann daher in jeder Sprache geschrieben werden, sofern die Sprache über Standard-Eingabe-, Ausgabe- und Umgebungsvariablen verfügt. Wie PHP, Perl, TCL usw.

CGI muss für jede Benutzeranfrage einen separaten Unterprozess zur Wartung öffnen, sodass bei großer Anzahl Leistungsprobleme auftreten und es in den letzten Jahren selten verwendet wurde.

FastCGI

FastCGI ist eine aktualisierte Version von CGI und kann jederzeit ausgeführt werden wird nicht Es wird jedes Mal einige Zeit dauern, php.ini zu analysieren, alle DLL-Erweiterungen neu zu laden und alle Datenstrukturen neu zu initialisieren.

PHP verwendet für die Verwaltung PHP-FPM (FastCGI Process Manager), dessen vollständiger Name PHP FastCGI Process Manager ist.

So funktioniert FastCGI

Der FastCGI-Prozessmanager wird geladen, wenn der Webserver startet;

Der FastCGI-Prozessmanager initialisiert sich selbst und startet mehrere CGI-Interpretationen

Wenn eine Client-Anfrage beim Webserver eintrifft, wählt der FastCGI-Prozessmanager einen CGI-Interpreter aus und stellt eine Verbindung zu ihm her. Der Webserver sendet CGI-Umgebungsvariablen und Standardeingaben an den FastCGI-Unterprozess php-cgi.

Nachdem der FastCGI-Unterprozess die Verarbeitung abgeschlossen hat, gibt er über dieselbe Verbindung Standardausgabe- und Fehlerinformationen an den Webserver zurück. Wenn der untergeordnete FastCGI-Prozess die Verbindung schließt, wird die Anfrage verarbeitet. Der untergeordnete FastCGI-Prozess wartet dann auf die nächste Verbindung vom FastCGI-Prozessmanager und verarbeitet diese.

Im normalen CGI-Modus ist dies das Ende und Sie müssen es beim nächsten Mal noch einmal machen. Aber in FastCGI passiert das alles nur einmal, wenn der Prozess startet. Ein zusätzlicher Bonus besteht darin, dass dauerhafte Datenbankverbindungen funktionieren.

Cli

PHP-CLI ist die Abkürzung für PHP Command Line Interface, die Schnittstelle für die Ausführung von PHP auf der Befehlszeile, die sich von PHP unterscheidet Umgebung, die auf dem Webserver läuft (PHP-CGI usw.).

Unter Linux verwenden wir häufig „php -m“, um herauszufinden, welche Erweiterungen PHP installiert hat. Dies ist der PHP-Befehlszeilen-Ausführungsmodus. Sie können php -h eingeben, um zu sehen, welche spezifischen Befehle verfügbar sind.

Im PHP-CLI-Modus können wir eine PHP-Datei direkt starten und ausführen, genau wie in workerman

php index.php start

Es ist zu beachten, dass es im PHP-CLI-Modus kein PHP-Lauf-Timeout gibt. .

Modulladen

ist im Allgemeinen für Apache. Auf diese Weise besteht ihr gemeinsames Wesen darin, LoadModule zum Laden von phpX_module zu verwenden, was darin besteht, PHP als Apache-Submodul zu verwenden laufen. Beim Zugriff auf eine PHP-Datei über das Web ruft Apache phpX_module auf, um den PHP-Code zu analysieren. Wie übergibt phpX_module die Daten an den PHP-Parser, um den PHP-Code zu analysieren? Die Antwort ist durch Sapi.

Der obige Prozess des Apache-Aufrufs von PHP ist also wie folgt:

apache -> httpd -> php5_module -> sapi -> php

Jedes Mal, wenn Apache eine Anfrage erhält, wird ein Prozess zum Herstellen einer Verbindung zu PHP generiert, um die Anfrage über Sapi As abzuschließen Sie können sich vorstellen, dass der Server dies nicht mehr ertragen kann, wenn zu viele Benutzer und zu viele gleichzeitige Benutzer vorhanden sind.

Darüber hinaus ist es beim Kompilieren von mod_php in Apache schwierig festzustellen, ob es sich um ein Problem mit PHP oder Apache handelt, wenn ein Problem auftritt.

Zusammenfassung

Wenn Sie einen leistungsstarken PHP-WEB-Server erstellen möchten, ist Apache/Nginx + FastCGI + PHP-FPM(+PHP-) derzeit der beste Weg CGI)-Methode, verwenden Sie nicht mehr das Laden von Modulen oder die CGI-Methode

Das obige ist der detaillierte Inhalt vonVortrag eines Arbeiters über verschiedene Betriebsmodi in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen