Heim > Artikel > Backend-Entwicklung > Wie PHP funktioniert
1. Das Funktionsprinzip von PHP
Typische Fragen: Nginx + PHP – Das Funktionsprinzip von FPM
CGI: Einige frühe Webserver können nur einfache statische HTML-Dateien verarbeiten, aber mit der Entwicklung der Technologie werden auch dynamische Sprachen entwickelt erschien (wie PHP, Python). Wenn wir PHP verarbeiten möchten, müssen wir einen PHP-Parser zur Verarbeitung übergeben. Aber wie kommuniziert man nach der Verarbeitung von PHP mit unserem Webserver? Das ist ein Problem. Um das Kommunikationsproblem zwischen verschiedenen Sprachprozessoren und dem Webserver zu lösen, wurde das CGI-Protokoll entwickelt. Solange das Programm gemäß dem CGI-Protokoll geschrieben ist, kann die Kommunikation zwischen dem Sprachparser und dem Webserver realisiert werden. (Beispiel: CGI-Programm von PHP) In diesem Prozess ist CGI eine Protokollbrücke zwischen dem PHP-Parser und dem Webserver.
FastCGI: Obwohl CGI das Problem der Kommunikation zwischen PHP und Webserver löst, ist seine Effizienz sehr gering, da der Webserver jedes Mal, wenn er eine Anfrage empfängt, einen neuen CGI-Prozess öffnet und den Prozess dann beendet, wenn die Anfrage endet Wenn wir dieses Mal 10.000, 100.000 oder 1 Million solcher Anfragen haben, werden wir 100.000 oder 1 Million neue Prozesse eröffnen und sie dann beenden. An sich ist das eine große Verschwendung unserer Ressourcen. Zu diesem Zeitpunkt erschien FastCGI hauptsächlich als verbesserte Version von CGI. Der Prozess wird nicht beendet, sondern bleibt erhalten, sodass der Prozess mehrere Anfragen gleichzeitig verarbeiten kann In diesem Fall ist es nicht erforderlich, einen Prozess jedes Mal neu zu öffnen, was unsere Effizienz erheblich verbessert.
PHP-FPM: (FastCGI Process Manager: FastCGI-Prozessmanager), FPM ist eine Implementierung von FastCGI und bietet Prozessverwaltungsfunktionen. Der Prozess umfasst zwei Prozesse: Master-Prozess und Worker-Prozess. Es gibt nur einen Master-Prozess, der für das Abhören des Ports und den Empfang von Anforderungen vom Webserver verantwortlich ist. Es gibt im Allgemeinen mehrere Worker-Prozesse, und die spezifische Anzahl wird in definiert Die FPM-Konfiguration In jedem Prozess ist ein PHP-Parser eingebettet (d. h. der Worker verarbeitet den PHP-Code, während der Master hauptsächlich auf dem Port lauscht und Anfragen von ihm empfängt). Webserver. Der Master-Listening-Port selbst ist standardmäßig 9000, und der 9000-Port wird über den Reverse-Proxy von Nginx weitergeleitet, sodass wir hier die FPM-bezogene Verarbeitung abschließen können.
2. Beschreiben Sie kurz die Unterschiede zwischen CGI, FastCGI und PHP-FPM.
CGI: Um ein Protokoll im Webserver und dem PHP-Parser zu kontaktieren, fungiert es als Brücke.
FastCGI: Es ist eine verbesserte Version von CGI.
PHP-FPM: FastCGI-Prozessmanager, FastCGI-Prozessmanager.
Das obige ist der detaillierte Inhalt vonWie PHP funktioniert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!