1. Alle PHP-Anwendungen werden über den WEB-Server (wie IIS, Nginx oder Apache) und die PHP-Engine-Programminterpretation und -Ausführung abgeschlossen. Der Arbeitsprozess:
(1) Wenn der Benutzer die Browseradresse eingibt Geben Sie den Dateinamen der PHP-Seite ein, auf die zugegriffen werden soll, lösen Sie dann eine Web-Anfrage aus und übermitteln Sie die Anfrage an den WEB-Server.
(2) Der WEB-Server nimmt diese Anfrage an und erkennt anhand ihres Suffixes, dass es sich um eine PHP-Anfrage handelt. Der WEB-Server ruft die PHP-Anwendung, auf die der Benutzer zugreifen möchte, von der Festplatte oder dem Speicher ab und sendet sie zum PHP-Programm.
(3) Das PHP-Engine-Programm scannt die vom WEB-Server gesendete Datei von Anfang bis Ende, liest sie gemäß dem Befehl aus dem Hintergrund, verarbeitet die Daten und generiert dynamisch die entsprechende HTML-Seite.
(4) Die PHP-Engine generiert eine HTML-Seite und sendet sie an den WEB-Server zurück. Der WEB-Server gibt dann die HTML-Seite an den Client-Browser zurück.
2. PHP-Betriebsmodus:
1) cgi Common Gateway Interface)
2) fast-cgi langlebiger Typ CGI
3) cli Befehlszeilenbetrieb (Befehlszeilenschnittstelle)
4) Webmodulmodus (Modulmodus zum Ausführen von Webservern wie Apache)
Zusätzliche Erklärung:
1) Modulmodus:
Der Modulmodus ist in Form des Moduls mod_php5 integriert. Zu diesem Zeitpunkt besteht die Funktion des Moduls mod_php5 darin, von Apache übergebene PHP-Dateianforderungen zu empfangen, diese Anforderungen zu verarbeiten und dann die verarbeiteten Ergebnisse zurückzugeben zu Apache. Wenn wir das PHP-Modul (mod_php5) in seiner Konfigurationsdatei konfigurieren, bevor Apache startet, registriert das PHP-Modul den ap_hook_post_config-Hook von Apache2 und startet dieses Modul, wenn Apache beginnt, Anfragen für PHP-Dateien anzunehmen.
Zusätzlich zu dieser Lademethode beim Start können die Module von Apache zur Laufzeit dynamisch geladen werden, was bedeutet, dass der Server erweitert werden kann, ohne dass der Quellcode neu kompiliert werden muss oder der Server überhaupt angehalten werden muss. Wir müssen lediglich das Signal HUP oder AP_SIG_GRACEFUL an den Server senden, um den Server zu benachrichtigen, das Modul neu zu laden. Vor dem dynamischen Laden müssen wir das Modul jedoch in eine dynamische Linkbibliothek kompilieren. Beim dynamischen Laden wird zu diesem Zeitpunkt die dynamische Linkbibliothek geladen. Die Verarbeitung dynamischer Linkbibliotheken in Apache wird über das Modul mod_so abgeschlossen, sodass das Modul mod_so nicht dynamisch geladen, sondern nur statisch in den Kern von Apache kompiliert werden kann. Dies bedeutet, dass es zusammen mit Apache gestartet wird.
2) PHP-Laufmodus in Nginx (Nginx+ PHP-FPM)
Einzelheiten finden Sie im Abschnitt zum Nginx + PHP-Prinzip
Ergänzung:
1. CGI, Fast-CGI-Protokoll
Geschichte von CGI
Der vollständige Name von CGI ist „Common Gateway Interface“ (Common Gateway Interface), mit dem der HTTP-Server kommuniziert mit Ihren oder anderen Maschinen Ein Werkzeug zum „Sprechen“ mit einem Programm auf einem Netzwerkserver, das auf einem Netzwerkserver ausgeführt werden muss. CGI kann in jeder Sprache geschrieben werden, solange die Sprache über Standard-Eingabe-, Ausgabe- und Umgebungsvariablen verfügt. Wie PHP, Perl, TCL usw.
Frühe Webserver verarbeiteten nur statische Dateien wie HTML, aber mit der Entwicklung der Technologie erschienen dynamische Sprachen wie PHP. Der Webserver kann damit nicht umgehen, was soll ich tun? Dann überlassen Sie es dem PHP-Interpreter! Aber wie kommuniziert der PHP-Interpreter mit dem Webserver?
Um das Kommunikationsproblem zwischen verschiedenen Sprachinterpretern (z. B. PHP-, Python-Interpretern) und dem Webserver zu lösen, erschien das CGI-Protokoll. Solange Sie ein Programm gemäß dem CGI-Protokoll schreiben, können Sie eine Kommunikation zwischen dem Sprachinterpreter und dem Webserver erreichen. Wie zum Beispiel ein PHP-CGI-Programm.
Verbesserungen von Fast-CGI
Mit dem CGI-Protokoll wird das Problem der Kommunikation zwischen dem PHP-Interpreter und dem Webserver gelöst und der Webserver kann endlich dynamische Sprachen verarbeiten. Allerdings wird der Webserver jedes Mal, wenn er eine Anfrage erhält, einen CGI-Prozess forken und den Prozess dann beenden, nachdem die Anfrage abgeschlossen ist. Bei 10.000 Anfragen muss der PHP-CGI-Prozess 10.000 Mal geforkt und beendet werden. Haben Sie jemals festgestellt, dass es eine Verschwendung von Ressourcen ist? Als Ergebnis erschien eine verbesserte Version von CGI, Fast-CGI.
Nachdem Fast-CGI jedes Mal eine Anfrage verarbeitet, wird der Prozess nicht beendet, sondern beibehalten, sodass der Prozess mehrere Anfragen gleichzeitig verarbeiten kann. Auf diese Weise ist es nicht erforderlich, einen Prozess jedes Mal neu zu forken, was die Effizienz erheblich verbessert. FastCGI ist eine sprachunabhängige, offene CGI-Erweiterung mit skalierbarer Architektur. Ihr Hauptverhalten besteht darin, den CGI-Interpreterprozess im Speicher zu halten und so eine höhere Leistung zu erzielen. Wie wir alle wissen, ist das wiederholte Laden des CGI-Interpreters der Hauptgrund für eine geringe CGI-Leistung. Wenn der CGI-Interpreter im Speicher bleibt und die Planung des FastCGI-Prozessmanagers akzeptiert, kann er gute Leistung, Skalierbarkeit, Failover-Funktionen usw. bieten.
2. Was ist php-fpm
PHP-FPM ist ein PHP-FastCGI-Manager, der nur für PHP verwendet wird. PHP-FPM ist eigentlich ein Patch des PHP-Quellcodes, der die FastCGI-Prozessverwaltung in das PHP-Paket integrieren soll. PHP-FPM bietet eine bessere PHP-Prozessverwaltungsmethode, mit der Speicher und Prozesse effektiv gesteuert und die PHP-Konfiguration reibungslos neu geladen werden können.
Der Prozess umfasst zwei Arten von Prozessen: 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, während es im Allgemeinen mehrere Worker-Prozesse gibt (die spezifische Anzahl wird entsprechend den tatsächlichen Anforderungen konfiguriert). Jeder Prozess verfügt über ein PHP Darin ist ein Interpreter eingebettet, bei dem es sich um PHP handelt, in dem der Code tatsächlich ausgeführt wird.
Verwandte Empfehlungen:
Analyse der Funktionsprinzipien von Apache und PHP
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Funktionsweise von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

PHP stirbt nicht, sondern sich ständig anpasst und weiterentwickelt. 1) PHP hat seit 1994 mehreren Versionen für die Version unterzogen, um sich an neue Technologietrends anzupassen. 2) Es wird derzeit in E-Commerce, Content-Management-Systemen und anderen Bereichen häufig verwendet. 3) PHP8 führt den JIT -Compiler und andere Funktionen ein, um die Leistung und Modernisierung zu verbessern. 4) Verwenden Sie Opcache und befolgen Sie die PSR-12-Standards, um die Leistung und die Codequalität zu optimieren.

Die Zukunft von PHP wird erreicht, indem sich an neue Technologietrends angepasst und innovative Funktionen eingeführt werden: 1) Anpassung an Cloud Computing, Containerisierung und Microservice -Architekturen, Unterstützung von Docker und Kubernetes; 2) Einführung von JIT -Compilern und Aufzählungsarten zur Verbesserung der Leistung und der Datenverarbeitungseffizienz; 3) die Leistung kontinuierlich optimieren und Best Practices fördern.

In PHP eignet sich das Merkmal für Situationen, in denen die Wiederverwendung von Methoden erforderlich ist, aber nicht zur Erbschaft geeignet ist. 1) Das Merkmal ermöglicht Multiplexing -Methoden in Klassen, um die Komplexität mehrerer Vererbungskomplexität zu vermeiden. 2) Bei Verwendung von Merkmalen müssen Sie auf Methodenkonflikte achten, die durch die Alternative und als Schlüsselwörter gelöst werden können. 3) Überbeanspruchte des Merkmals sollte vermieden werden und seine einzelne Verantwortung sollte beibehalten werden, um die Leistung zu optimieren und die Code -Wartbarkeit zu verbessern.

Abhängigkeitsinjektionsbehälter (DIC) ist ein Tool, das Objektabhängigkeiten für die Verwendung in PHP -Projekten verwaltet und bereitstellt. Die Hauptvorteile von DIC sind: 1. Entkopplung, Machen von Komponenten unabhängig, und der Code ist leicht zu warten und zu testen; 2. Flexibilität, leicht zu ersetzen oder zu ändern; 3.. Testbarkeit, bequem für die Injektion von Scheinobjekten für Unit -Tests.

SplfixedArray ist ein Array mit fester Größe in PHP, das für Szenarien geeignet ist, in denen hohe Leistung und geringe Speicherverbrauch erforderlich sind. 1) Es muss die Größe beim Erstellen angeben, um den durch dynamischen Einstellungen verursachten Overhead zu vermeiden. 2) Basierend auf C -Spracharray betreibt direkt Speicher und schnelle Zugriffsgeschwindigkeit. 3) Geeignet für eine großräumige Datenverarbeitung und speicherempfindliche Umgebungen, muss jedoch mit Vorsicht verwendet werden, da seine Größe festgelegt ist.

PHP überlädt Datei -Hochladen über die Variable $ \ _ Dateien. Zu den Methoden zur Sicherstellung gehören: 1. Upload -Fehler, 2. Dateityp und -größe überprüfen, 3.. Dateiüberschreibung verhindern, 4. Verschieben von Dateien auf einen dauerhaften Speicherort.

In JavaScript können Sie NullCoalescingoperator (??) und NullCoalescingAssignmentoperator (?? =) verwenden. 1.??? 2.??= Weisen Sie den Wert des rechten Operanden die Variable zu, jedoch nur, wenn die Variable null oder undefiniert ist. Diese Operatoren vereinfachen die Codelogik und verbessern die Lesbarkeit und Leistung.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen