Inhaltsverzeichnis
Apache verarbeitet PHP-Anfragen" >Apache verarbeitet PHP-Anfragen
Heim Backend-Entwicklung PHP-Problem Eine kurze Diskussion über fastcgi und php-fpm in PHP

Eine kurze Diskussion über fastcgi und php-fpm in PHP

Jun 15, 2021 pm 05:27 PM
php

Dieser Artikel gibt Ihnen eine kurze Einführung in fastcgi und php-fpm in PHP. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.

Eine kurze Diskussion über fastcgi und php-fpm in PHP

Wenn es um PHP-Entwicklung geht, werden fastcgi und php-fpm auf jeden Fall erwähnt. Diese beiden Dinge spielen eine entscheidende Rolle für die Leistung von PHP. Während meines Praktikums bei Baidu wurde PHP-FPM als ODP-Umgebung verwendet, aber ich hatte keine Ahnung davon und hatte sogar eine vage Vorstellung von PHP als Ganzes. Die Aufgabe wurde in den letzten zwei Tagen vorzeitig abgeschlossen nutzte diese Gelegenheit, um mehr über PHP zu erfahren.

Webserver

PHP ist eine serverseitige Sprache, die speziell für die Webentwicklung entwickelt wurde. Zu den gängigen PHP-Architekturen gehören LAMP und LNMP.

Eine kurze Diskussion über fastcgi und php-fpm in PHP

Apache verarbeitet PHP-Anfragen

mod_php-Modus

Es ist ersichtlich, dass die Anfrage an Apache gesendet wird und Apache dann PHP analysiert und verarbeitet und das Ergebnis an den Client zurückgibt. Wenn wir die LAMP-Architektur verwenden, müssen wir die Apache-Konfigurationsdatei httpd.conf

加入如下两句
LoadModule phpx_module PHP_ROOT/phpxapache2_2.dllAddType appliaction/x-httpd-php.php
将下面语句做如下修改<IfModule dir_module> DirectoryIndex index.html</IfModule>改为 <IfModule dir_module> DirectoryIndex index.html index.htm index.php index.phtml</IfModule>
Nach dem Login kopieren

ändern und LoadModule verwenden, um phpx_module zu laden (x ist die PHP-Versionsnummer). Es versteht sich, dass PHP als Untermodul von Apache ausgeführt wird. Wenn eine Anfrage für den Zugriff auf PHP gestellt wird, ruft Apache phpx_module auf, um den PHP-Code zu analysieren.

Wie analysiert php_module PHP-Code? - Über Sapi.

Die Beziehung zwischen Apache, PHP und Sapi ist wie folgt:

Eine kurze Diskussion über fastcgi und php-fpm in PHP

Sapi ist eine Zwischenschicht, die eine Schnittstelle für externe Kommunikation bereitstellt, ähnlich einem Socket, sodass PHP mit anderen Anwendungen für Daten interagieren kann. PHP bietet eine Vielzahl von Sapi, z. B. php_module für Apache und Nginx, ISAPI für IIS usw.

Der Ausführungsprozess von Apache, der PHP aufruft:

Apache -> php_module -> sapi -> PHP

Kurz gesagt, der Modus, in dem der Webserver PHP über die php_module-Methode analysiert ist mod_php.

mod_fastcgi-Modus

Eine andere Möglichkeit von PHPs Sapi besteht darin, den CGI-Modus bereitzustellen. Jetzt wurde CGI durch FastCGI ersetzt.

Die sogenannte CGI ist eine gemeinsame Gateway-Schnittstelle. Wenn der Webserver die Anfrage empfängt, übergibt er sie an das CGI-Programm (z. B. PHPs Fastcgi verarbeitet die Anfrage (parst PHP) und gibt sie dann zurück Ergebnis an den Webserver, der Webserver sendet die Anfrage dann an den Client zurück.

Der Nachteil von CGI besteht darin, dass jede Anfrage einen Start- und Beendigungsprozess hat. Dies ist der viel kritisierte Fork-and-Execute-Modus, der bei einer großen Anzahl gleichzeitiger Anfragen beendet wird.

Die Geburt von fastcgi gleicht diesen Mangel aus. Sein Prinzip besteht darin, frühzeitig auf Anfragen zu warten und nach der Beantwortung der Anfrage nicht zu beenden und weiter auf die nächste Anfrage zu warten.

Der Laufmodus, der fastcgi verwendet, heißt mod_fastcgi.

Vergleichen Sie die Unterschiede zwischen mod_php und mod_fastcgi. Ersteres führt PHP als Modul des Webservers aus und PHP ist stark in den Server integriert. Letzterer verwendet fastcgi als Zwischenprozess, während PHP und Webserver fastcgi nur zum Vervollständigen von Anforderungen und Antworten verwenden.

Eine kurze Diskussion über fastcgi und php-fpm in PHP

mod_php-Modus

mod_php-Modus: Jedes Mal, wenn Apache eine Anfrage akzeptiert, generiert er einen Prozess zum Herstellen einer Verbindung zu PHP, um die Anfrage über Sapi abzuschließen. Bei hoher Parallelität ist dies offensichtlich nicht der Fall in der Lage, es zu ertragen.

Eine kurze Diskussion über fastcgi und php-fpm in PHP

mod-fastcgi-Modus

Wie auf diesem Bild zu sehen ist, ruft httpd bei jedem Eintreffen einer Anfrage sapi auf, um die Anfrage an PHP weiterzuleiten, und wird nach Abschluss nicht beendet und auf die nächste Anfrage warten. Die Parallelitätsleistung wird erheblich verbessert.

php-fpm

Schärfen Sie das Messer und hacken Sie Holz. Die vorherige Erklärung dient nur der Einführung von php-fpm. Was macht PHP-FPM? Tatsächlich wird es zur Unterstützung von Fastcgi verwendet.

fastcgi ist eine plattformunabhängige und sprachunabhängige Schnittstellenimplementierung. Sie muss lediglich in verschiedenen Sprachen gemäß den vorgeschriebenen Methoden implementiert werden, um die Kommunikation mit dem Webserver abzuschließen. Das im Bild oben gezeigte PHP-CGI ist der FastCGI-Manager, der mit PHP geliefert wird.

Es gibt zwei Hauptprobleme mit php-cgi, die im Internet beobachtet werden:

  • Nachdem php-cgi die php.ini geändert hat, müssen Sie php-cgi neu starten, damit die neue php.ini wirksam wird, und es kann nicht neu gestartet werden glatt.

  • Wenn Sie PHP-CGI direkt beenden, kann PHP nicht ausgeführt werden.

php-fpm behebt die oben genannten Mängel perfekt und ist ein dedizierter FastCGI-Manager.

Kurz gesagt besteht die Rolle von php-fpm darin, Fastcgi in PHP gezielt zu verwalten, sodass PHP sicher und stabil mit dem Webserver zusammenarbeiten kann, um den Anforderungsantwortprozess unter Bedingungen hoher Parallelität abzuschließen.

Empfohlenes Lernen: php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über fastcgi und php-fpm in PHP. 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

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)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

7 PHP-Funktionen, die ich leider vorher nicht kannte 7 PHP-Funktionen, die ich leider vorher nicht kannte Nov 13, 2024 am 09:42 AM

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge PHP -Programm zum Zählen von Vokalen in einer Zeichenfolge Feb 07, 2025 pm 12:12 PM

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Erklären Sie die späte statische Bindung in PHP (statisch: :). Erklären Sie die späte statische Bindung in PHP (statisch: :). Apr 03, 2025 am 12:04 AM

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Was sind PHP Magic -Methoden (__construct, __Destruct, __call, __get, __set usw.) und geben Sie Anwendungsfälle an? Apr 03, 2025 am 12:03 AM

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.

See all articles