Heim >Backend-Entwicklung >PHP7 >Was ist der Lebenszyklus von PHP7?

Was ist der Lebenszyklus von PHP7?

醉折花枝作酒筹
醉折花枝作酒筹nach vorne
2021-05-10 09:19:571899Durchsuche

Dieser Artikel führt Sie in den Lebenszyklus von PHP7 ein. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Was ist der Lebenszyklus von PHP7?

PHP-Architektur

SAPI-Einführung

Definition: Server Application Programming Interface, Server Application Programming Port. Es ist die Schnittstelle für PHP zur Interaktion mit anderen Anwendungen. PHP-Skripte können auf viele Arten ausgeführt werden, über einen Webserver, direkt auf der Befehlszeile oder eingebettet in andere Programme. SAPI bietet eine Schnittstelle für die externe Kommunikation. Zu den gängigen SAPIs gehören: CGI, Fast-CGI, CLI, Apache-Modul-DLL usw.

  • CGI

CGI ist eine gemeinsame Gateway-Schnittstelle (gemeinsame Gateway-Schnittstelle). Für Laien ist CGI wie eine Brücke, die Webseiten und Ausführungsprogramme in WEB-Servern verbindet Empfangene Anweisungen werden an das Ausführungsprogramm des Servers weitergeleitet und anschließend werden die Ergebnisse des Ausführungsprogramms des Servers an die HTML-Seite zurückgegeben. CGI ist äußerst plattformübergreifend und kann auf fast jedem Betriebssystem implementiert werden.遇 Die CGI-Methode muss bei einer Verbindungsanforderung (Benutzeranforderung) zunächst einen CGI-Unterprozess erstellen, einen CGI-Prozess aktivieren und dann die Anforderung verarbeiten, um diesen untergeordneten Prozess nach der Verarbeitung zu beenden. Dies ist das Fork-and-Execute-Muster. Daher verfügt ein Server, der CGI verwendet, über so viele CGI-Unterprozesse wie Verbindungsanforderungen. Das wiederholte Laden von Unterprozessen ist der Hauptgrund für die geringe CGI-Leistung. Wenn die Anzahl der Benutzeranforderungen sehr groß ist, werden große Mengen an Systemressourcen wie Speicher, CPU-Zeit usw. belegt, was zu einer geringen Leistung führt.

    FPM (FastCGI)
  • Fast-CGI ist wie ein langlebiges CGI. Es kann jederzeit ausgeführt werden Jedes Mal braucht es Zeit, einmal zu forken. PHP verwendet für die Verwaltung PHP-FPM (FastCGI Process Manager), der vollständige Name von PHP FastCGI Process Manager.

          Laden Sie den FastCGI-Prozessmanager (IIS ISAPI oder Apache-Modul), wenn der Webserver startet. Der FastCGI-Prozessmanager initialisiert sich selbst, startet mehrere CGI-Interpreterprozesse (sichtbar mehrere PHP-CGI) und wartet auf Verbindungen vom Webserver.

Wenn eine Client-Anfrage den Webserver erreicht, 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 (der auf dem Webserver ausgeführt wird) und verarbeitet diese. Im CGI-Modus wird php-cgi an dieser Stelle beendet.

Im obigen Fall können Sie sich vorstellen, wie langsam CGI normalerweise ist. Jede Webanfrage an PHP muss php.ini erneut analysieren, alle Erweiterungen neu laden und alle Datenstrukturen neu initialisieren. Bei FastCGI geschieht dies alles nur einmal, nämlich beim Start des Prozesses. Ein zusätzlicher Vorteil besteht darin, dass dauerhafte Datenbankverbindungen funktionieren.

    APACHE2HANDLER
  • PHP als Apache-Modul generiert vorab mehrere Prozesskopien, die nach dem Systemstart im Speicher verbleiben. Sobald eine Anfrage erscheint, werden diese freien untergeordneten Prozesse sofort zur Verarbeitung verwendet dass es keine Verzögerung durch das Laichen von untergeordneten Prozessen gibt. Diese Serverkopien werden nicht sofort nach der Verarbeitung einer HTTP-Anfrage beendet, sondern bleiben auf dem Computer und warten auf die nächste Anfrage. Die Reaktion auf Client-Browseranfragen ist schneller und die Leistung ist höher.

    CLI
  • CLI ist der Befehlszeilen-Ausführungsmodus von PHP. Sie verwenden ihn häufig, aber Sie bemerken ihn möglicherweise nicht (z. B. verwenden wir unter Linux häufig „php -m“, um herauszufinden, welche Erweiterungen PHP haben installiert ist. Es handelt sich um den PHP-Befehlszeilen-Ausführungsmodus.

Struktur:

struct _sapi_module_struct { 
      char *name; 
      char *pretty_name;
      int (*startup)(struct _sapi_module_struct *sapi_module); 
      int (*shutdown)(struct _sapi_module_struct *sapi_module); 
      int (*activate)(void); 
      int (*deactivate)(void); 
      size_t (*ub_write)(const char *str, size_t str_length); 
      void (*flush)(void *server_context); 
     …
}

Aufruf-API:

Wird aufgerufen, wenn das Modul startet:

int (*startup)(struct _sapi_module_struct *sapi_module);

Wird aufgerufen, wenn das Modul endet:

int (*shutdown)(struct _sapi_module_struct *sapi_module);

Wird bei der Verarbeitung der Anfrage aufgerufen:

int (*activate)(void);

Verarbeitung des vollständigen Anforderungsaufrufs:

int (*activate)(void);

SAPI

Struktur entsprechend dem CGI-Modus:

CLI-Lebenszyklus:

FPM-Modus entsprechende SAPI

Struktur:

Lebenszyklus des FPM-Modus:

Empfohlen Lernen: php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Lebenszyklus von PHP7?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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