Die drei Ausführungsmethoden von PHP sind: 1. Implementiert durch das integrierte Modul von HTTPServer; 2. Implementiert durch CGI; 3. Implementiert durch FastCGI;
Empfehlung: „PHP-Video-Tutorial“
Drei Betriebsmodi von PHP
Drei Betriebsmodi: mod_php5, cgi, fast-cgi
1. Realisiert durch das integrierte Modul von HTTPServer ,
Zum Beispiel kann Apaches mod_php5, ähnlich wie Apaches integriertes mod_perl,
2 unterstützen. Dies ist genau wie das vorherige CGI von Perl. Der Nachteil dieser Methode ist die schlechte Leistung , denn jedes Mal, wenn der Server auf diese Skripte trifft, muss er den Skriptparser neu starten, um das Skript auszuführen und die Ergebnisse an den Server zurückzugeben. Diese Methode wird jedoch fast selten verwendet.
3. Das neueste heißt FastCGI.
Das sogenannte FastCGI ist eine Verbesserung gegenüber CGI. Es verwendet im Allgemeinen eine C/S-Struktur. Im Allgemeinen startet der Skriptprozessor einen oder mehrere Daemon-Prozesse. Jedes Mal, wenn HTTPServer auf ein Skript trifft, wird es direkt zur Ausführung an den FastCGI-Prozess übermittelt und dann das Ergebnis (normalerweise HTML) zurückgegeben . zum Browser.
Ein kleines Problem bei dieser Methode besteht darin, dass bei häufigen Anfragen mit großem Datenverkehr der Daemon-Prozess des Skriptprozessors überlastet sein und sehr langsam werden kann oder sogar Speicherverluste auftreten können.
Aber im Vergleich zu Apache ist der Vorteil des integrierten; In der Modulmethode besteht der Vorteil darin, dass der Server nicht mehr überlastet ist und sich darauf konzentrieren kann, auf statische Dateien zu reagieren oder die Ergebnisse des dynamischen Skriptparsers an den Benutzerclient zurückzugeben, da der Server und der Skriptparser vollständig getrennt sind und jeder seine eigene Verantwortung hat.
Im Vergleich zur integrierten Modulmethode von Apache ist die Leistung manchmal erheblich verbessert.
Einige Leute haben getestet, dass es möglicherweise 5 bis 10 Mal schneller ist als Apache+mod_php.
3.1. Allgemeine FastCGI-Modi:
lightppd+spawn-fcgi
nginx+PHP-FPM
a. Beide oben genannten verwenden FastCGI zur Unterstützung von PHP, sodass HTTPServer vollständig befreit ist und besser und gleichzeitiger verarbeiten kann .
b. Da spawn-fcgi Teil von lighttpd ist, wird spawn-fcgi im Allgemeinen zur Unterstützung von PHP verwendet. Einige Benutzer sagen jedoch, dass spwan-fcgi von lighttpd bei hohem gleichzeitigem Zugriff angezeigt wird . Speicherlecks führen sogar einen automatischen Neustart von fastcgi durch.
Im Gegensatz zu lighttpd ist Nginx mit fastcgi (spawn-fcgi) ausgestattet. Sie müssen zum Parsen von PHP einen FastCGI-Prozessor eines Drittanbieters verwenden, sodass Nginx tatsächlich sehr flexibel ist Jeder Parsing-Prozessor eines Drittanbieters zum Parsen von PHP.
Nginx kann spwan-fcgi verwenden (lighttpd muss zusammen installiert werden, aber der Port muss für nginx vermieden werden. Einige ältere Blogs haben diesbezügliche Installationsanleitungen), aber spawn-fcgi weist die oben genannten Mängel auf, die Benutzer nach und nach haben entdeckt, jetzt wird die Verwendung der Kombination nginx+spawn-fcgi schrittweise reduziert.
c. Aufgrund der Mängel von spawn-fcgi ist ein neuer FastCGI-Prozessor eines Drittanbieters für PHP aufgetaucht (derzeit habe ich noch gehört, dass sie hart daran arbeiten, ihn in den PHP-Kern aufzunehmen). FPM. Im Vergleich zu spawn-fcgi bietet es folgende Vorteile:
Da PHP-FPM als PHP-Patch entwickelt wurde, muss es während der Installation zusammen mit dem PHP-Quellcode kompiliert werden, was bedeutet, dass es in den PHP-Kern kompiliert wird In Bezug auf die Leistung ist es besser;
Gleichzeitig ist es auch besser als spawn-fcgi im Umgang mit hoher Parallelität, zumindest wird der Fastcgi-Prozessor nicht automatisch neu gestartet.
Daher ist die aktuelle Leistung von Nginx, wie oben erwähnt, aufgrund der Leichtigkeit und Flexibilität überlegen, und immer mehr Menschen verwenden nach und nach diese Kombination: Nginx+PHP/PHP-FPM.
Das obige ist der detaillierte Inhalt vonDrei Möglichkeiten, PHP auszuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!