suchen
HeimBackend-EntwicklungPHP-TutorialDetaillierte Erläuterung des zugrunde liegenden Betriebsmechanismus und der Arbeitsprinzipien von PHP

Detaillierte Erläuterung des zugrunde liegenden Betriebsmechanismus und der Arbeitsprinzipien von PHP

Ich habe kürzlich einen Server eingerichtet und plötzlich habe ich gespürt, wie die Lampen funktionieren oder wie sie verbunden sind? Normalerweise schreibe ich nur Programme und habe nie über das Funktionsprinzip zwischen ihnen nachgedacht:

PHP zugrunde liegendes Arbeitsprinzip

Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Kompetenz

Abbildung 1 PHP-Struktur

Wie auf dem Bild zu sehen ist , PHP Es ist ein 4-Schichten-System von unten nach oben

①Zend-Engine

Zend ist in reinem C implementiert und der Kernbestandteil von PHP. Es übersetzt PHP-Code (lexikalisch, Syntaxanalyse). , usw.) Prozess) verarbeitet ausführbare Opcodes und implementiert entsprechende Verarbeitungsmethoden, implementiert grundlegende Datenstrukturen (wie Hashtable, oo), Speicherzuweisung und -verwaltung und stellt entsprechende API-Methoden für externe Aufrufe bereit. Es ist der Kern von allem Funktionen werden rund um Zend implementiert.

②Erweiterungen

Rund um die Zend-Engine stellen Erweiterungen verschiedene grundlegende Dienste auf Komponentenbasis bereit. Unsere gemeinsamen verschiedenen integrierten Funktionen (z. B. Array-Serien), Standardbibliotheken usw. sind alles durch Erweiterungen Um dies zu erreichen, können Benutzer bei Bedarf auch eigene Erweiterungen implementieren, um Funktionserweiterungen, Leistungsoptimierungen und andere Zwecke zu erreichen (z. B. sind die PHP-Mittelschicht und die Rich-Text-Analyse, die derzeit von Tieba verwendet werden, typische Erweiterungsanwendungen).

③Sapi

Der vollständige Name von Sapi ist Server Application Programming Interface. Dies ist die Server-Anwendungsprogrammierschnittstelle, die es PHP ermöglicht, über eine Reihe von Hook-Funktionen mit Peripheriedaten zu interagieren Elegantes und erfolgreiches Design entkoppelt und isoliert PHP selbst erfolgreich von Anwendungen der oberen Ebene über SAPI. PHP kann nicht mehr berücksichtigen, wie es mit verschiedenen Anwendungen kompatibel ist, und die Anwendung selbst kann auch unterschiedliche Verarbeitungsmethoden entsprechend ihren eigenen Eigenschaften implementieren. Wir werden

später im Sapi-Kapitel vorstellen. ④ Oberschichtanwendung

Dies ist das PHP-Programm, das wir normalerweise schreiben. Wir können verschiedene Anwendungsmodi durch verschiedene Sapi-Methoden erhalten, z. B. durch die Implementierung von Web über den Webserver. Anwenden, als Skript über die Befehlszeile ausführen usw.

Architektonische Idee:

Das Modell Engine (Zend) + Komponente (ext) reduziert die interne Kopplung

Die mittlere Schicht (Sapi) isoliert das Web server und php

********************************************* ******* *******************************

Wenn PHP ein Auto ist, dann
Das Framework des Autos ist PHP selbst
Zend ist der Motor des Autos
Die verschiedenen Komponenten unter Ext sind die Räder des Autos
Sapi kann als Straße betrachtet werden, und das Auto kann auf verschiedenen Straßentypen fahren
Die Ausführung eines PHP-Programms ist wie ein Auto, das auf der Straße fährt.
Deshalb benötigen wir: Motor mit hervorragender Leistung + geeignete Räder + korrekte Landebahn

Die Beziehung zwischen Apache und PHP

Apache Das Parsen von PHP wird unter vielen Modulen durch das PHP-Modul vervollständigt.

Um PHP endgültig in das Apache-System zu integrieren, müssen Sie einige notwendige Einstellungen für Apache vornehmen. Hier nehmen wir zur Erläuterung den SAPI-Betriebsmodus mod_php5 von PHP als Beispiel. Das Konzept von SAPI werden wir später ausführlich erläutern.

Angenommen, die von uns installierten Versionen sind Apache2 und PHP5, dann müssen Sie die Hauptkonfigurationsdatei von Apache http.conf bearbeiten und die folgenden Zeilen hinzufügen:

Unix/Linux-Umgebung:

LoadModule php5_module modules/mod_php5.so
AddType application/x-httpd-php .php

Hinweis: module/mod_php5.so ist der Installationsort der Datei mod_php5.so in der X-Systemumgebung.

In einer Windows-Umgebung:

LoadModule php5_module d:/php/php5apache2.dll
AddType application/x-httpd-php .php

Hinweis: d:/php/php5apache2.dll ist der Installationsort der Datei php5apache2.dll in einer Windows-Umgebung.

Diese beiden Konfigurationen teilen dem Apache-Server mit, dass alle künftigen URL-Benutzeranfragen mit PHP als Suffix das Modul php5_module (mod_php5.so/php5apache2.dll) zur Verarbeitung aufrufen müssen.

Apaches Lebenszyklus

Apaches Anfrageverarbeitungsprozess

Detaillierte Erklärung des Apache-Anfrageverarbeitungszyklus

Alle 11 Phasen des Apache-Anfrageverarbeitungszyklus wurden abgeschlossen Welche Dinge?

1. Post-Read-Request-Phase
Im normalen Anforderungsverarbeitungsprozess ist dies die erste Phase, in der das Modul Hooks einfügen kann. Diese Phase kann von Modulen genutzt werden, die sehr früh mit der Bearbeitung von Anfragen beginnen möchten.

2. URI-Übersetzungsphase
Apaches Hauptaufgabe in dieser Phase: Zuordnung der angeforderten URL zum lokalen Dateisystem. Module können in dieser Phase Hooks einfügen, um ihre eigene Mapping-Logik auszuführen. mod_alias nutzt diese Phase zum Arbeiten.

3. Header-Parsing-Phase
Apaches Hauptarbeit in dieser Phase: Überprüfen des Headers der Anfrage. Da das Modul die Aufgabe übernehmen kann, Anforderungsheader an jedem Punkt des Anforderungsverarbeitungsablaufs zu überprüfen, wird dieser Hook selten verwendet. mod_setenvif nutzt diese Phase zum Arbeiten.

4. Die Hauptaufgabe von
Apache in dieser Phase: Überprüfen Sie, ob der Zugriff auf die angeforderte Ressource gemäß der Konfigurationsdatei zulässig ist. Die Standardlogik von Apache implementiert Zulassungs- und Ablehnungsanweisungen. mod_authz_host nutzt diese Phase, um zu funktionieren.

5. Authentifizierungsphase Die Hauptarbeit von
Apache in dieser Phase: Benutzer gemäß der in der Konfigurationsdatei festgelegten Richtlinie authentifizieren und den Benutzernamensbereich festlegen. Module können in dieser Phase Hooks einfügen, um eine Authentifizierungsmethode zu implementieren.

6. Autorisierungsphase Die Hauptarbeit von
Apache in dieser Phase: Überprüfen, ob authentifizierte Benutzer den angeforderten Vorgang gemäß der Konfigurationsdatei ausführen dürfen. Das Modul kann in dieser Phase Hooks einfügen, um eine Methode zur Benutzerrechteverwaltung zu implementieren.

7. MIME-Typprüfungsphase
Apaches Hauptarbeit in dieser Phase: Bestimmen der zu verwendenden Inhaltsverarbeitungsfunktion gemäß den relevanten Regeln des MIME-Typs der angeforderten Ressource. Die Standardmodule mod_negotiation und mod_mime implementieren diesen Hook.

8. FixUp-Phase
Dies ist eine allgemeine Phase, die es dem Modul ermöglicht, alle erforderlichen Verarbeitungen vor dem Inhaltsgenerator auszuführen. Ähnlich wie Post_Read_Request ist dies ein Hook, der beliebige Informationen erfassen kann und auch der am häufigsten verwendete Hook ist.

9. Antwortphase Die Hauptaufgabe von
Apache in dieser Phase besteht darin, an den Kunden zurückgegebene Inhalte zu generieren und für das Senden einer angemessenen Antwort an den Kunden verantwortlich zu sein. Diese Phase ist der Kernbestandteil des gesamten Prozesses.

10. Protokollierungsphase
Apaches Hauptarbeit in dieser Phase: Aufzeichnung von Transaktionen, nachdem die Antwort an den Client gesendet wurde. Module können die Standardprotokollierung von Apache ändern oder ersetzen.

11. Die Hauptaufgabe von Apache in dieser Phase: Bereinigen der Umgebung, die nach Abschluss dieser Anforderungstransaktion zurückbleibt, z. B. die Verarbeitung von Dateien und Verzeichnissen oder das Schließen von Sockets usw. Dies ist eine Apache-Zeit. Die letzte Phase der Anforderungsverarbeitung.

LAMPENarchitektur:

Vier Schichten von unten nach oben:

①liunx Gehört zur untersten Ebene des Betriebssystems

②Apache-Server, gehört zum sekundären Server, kommuniziert mit Linux und PHP

③php: Es gehört zur serverseitigen Programmiersprache und ist damit verbunden mit Apache über das php_module-Modul

④MySQL und andere Webdienste: gehören zu Anwendungsdiensten und sind über das Erweiterungs-Plug-In-Modul von PHP mit MySQL verknüpft

Android-Systemarchitekturdiagramm &@Lampen- und Android-Architektur Wenn man die Bilder vergleicht, scheint es der Lampenarchitektur etwas ähnlich zu sein, aber Experten können darauf hinweisen Der Unterschied. Vielen Dank

Von oben nach unten Weiter:

Android-Architektur------------- Beschreibung-------LAMP-Architektur

1. Anwendung------Spezifische Anwendung--------Webanwendung

2 ----Java------------PHP-Sprache und Bibliothek

3. Systemlaufzeitbibliothek:----Virtuelle Maschine---------WEB Server

⒋Linux-Kernel:---Betriebssystem-------Lampenarchitektur Die Beziehung zwischen der L

Lampe im und im Inneren des Computers

CPU ist die Fabrik, die Festplatte ist das große Lager und der Speicher ist das reguläre Übertragungszentrum, der virtuelle Speicher ist ein temporäres Übertragungszentrum

Php Die Sprache wird von Zend in Maschinensprache kompiliert und betreibt die CPU

Der Betrieb der Datenbank ist ein E/A-Vorgang und eine mechanische Bewegung, also der Betrieb einer Website. Der Engpass wird durch die verursacht Die Lösung besteht darin, die Anzahl der E/A-Vorgänge zu reduzieren und Puffertechnologie zu verwenden. Das heißt, die Datenoperationen werden in den Mencache gelegt, wenn sie eine bestimmte Größe erreichen Der Mencache gehört zur Schlüssel-Wert-Beziehung

Auch nicht relationale Daten basieren auf diesem Konzept und gehören ebenfalls zur Schlüssel-Wert-Beziehung

. Häufiger Lesevorgang ------ Legen Sie es in mencache

Lesen Sie mehr und schreiben Sie weniger ---- Legen Sie es in nosql ab ------ Die Lesefunktion ist sehr leistungsstark!

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des zugrunde liegenden Betriebsmechanismus und der Arbeitsprinzipien von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:jb51. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Der aktuelle Status von PHP: Ein Blick auf WebentwicklungstrendsDer aktuelle Status von PHP: Ein Blick auf WebentwicklungstrendsApr 13, 2025 am 12:20 AM

PHP bleibt in der modernen Webentwicklung wichtig, insbesondere in Content-Management- und E-Commerce-Plattformen. 1) PHP hat ein reichhaltiges Ökosystem und eine starke Rahmenunterstützung wie Laravel und Symfony. 2) Die Leistungsoptimierung kann durch OPCACHE und NGINX erreicht werden. 3) Php8.0 führt den JIT -Compiler ein, um die Leistung zu verbessern. 4) Cloud-native Anwendungen werden über Docker und Kubernetes bereitgestellt, um die Flexibilität und Skalierbarkeit zu verbessern.

Php gegen andere Sprachen: Ein VergleichPhp gegen andere Sprachen: Ein VergleichApr 13, 2025 am 12:19 AM

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

PHP vs. Python: Kernmerkmale und FunktionenPHP vs. Python: Kernmerkmale und FunktionenApr 13, 2025 am 12:16 AM

PHP und Python haben jeweils ihre eigenen Vorteile und eignen sich für verschiedene Szenarien. 1.PHP ist für die Webentwicklung geeignet und bietet integrierte Webserver und reichhaltige Funktionsbibliotheken. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit prägnanter Syntax und einer leistungsstarken Standardbibliothek. Bei der Auswahl sollte anhand der Projektanforderungen festgelegt werden.

PHP: Eine Schlüsselsprache für die WebentwicklungPHP: Eine Schlüsselsprache für die WebentwicklungApr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

PHP: Die Grundlage vieler WebsitesPHP: Die Grundlage vieler WebsitesApr 13, 2025 am 12:07 AM

Die Gründe, warum PHP für viele Websites der bevorzugte Technologie -Stack ist, umfassen die Benutzerfreundlichkeit, die starke Unterstützung der Community und die weit verbreitete Verwendung. 1) Einfach zu erlernen und zu bedienen, geeignet für Anfänger. 2) eine riesige Entwicklergemeinschaft und eine reichhaltige Ressourcen haben. 3) in WordPress, Drupal und anderen Plattformen häufig verwendet. 4) Integrieren Sie eng in Webserver, um die Entwicklung der Entwicklung zu vereinfachen.

Jenseits des Hype: Beurteilung der Rolle von PHP heute heuteJenseits des Hype: Beurteilung der Rolle von PHP heute heuteApr 12, 2025 am 12:17 AM

PHP bleibt ein leistungsstarkes und weit verbreitetes Tool in der modernen Programmierung, insbesondere im Bereich der Webentwicklung. 1) PHP ist einfach zu bedienen und nahtlos in Datenbanken integriert und für viele Entwickler die erste Wahl. 2) Es unterstützt die Erzeugung der dynamischen Inhalte und die objektorientierte Programmierung, die für die schnelle Erstellung und Wartung von Websites geeignet sind. 3) Die Leistung von PHP kann verbessert werden, indem Datenbankabfragen zwischengespeichert und optimiert werden, und die umfangreiche Community und sein reiches Ökosystem machen es im heutigen Technologiestack immer noch wichtig.

Was sind schwache Referenzen in PHP und wann sind sie nützlich?Was sind schwache Referenzen in PHP und wann sind sie nützlich?Apr 12, 2025 am 12:13 AM

In PHP werden schwache Referenzen in der WeaPreference -Klasse implementiert und verhindern nicht, dass der Müllsammler Objekte zurückerobern. Schwache Referenzen eignen sich für Szenarien wie Caching -Systeme und Event -Hörer. Es ist zu beachten, dass es das Überleben von Objekten nicht garantieren kann und dass die Müllsammlung möglicherweise verzögert wird.

Erklären Sie die __invoke magische Methode in PHP.Erklären Sie die __invoke magische Methode in PHP.Apr 12, 2025 am 12:07 AM

Mit der \ _ \ _ -Invoke -Methode können Objekte wie Funktionen bezeichnet werden. 1. Definieren Sie die Methode \ _ \ _, damit das Objekt aufgerufen werden kann. 2. Bei Verwendung der Syntax $ OBJ (...) wird PHP die Methode \ _ \ _ aufrufen. 3.. Geeignet für Szenarien wie Protokollierung und Taschenrechner, Verbesserung der Codeflexibilität und Lesbarkeit.

See all articles

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ßer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools