Heim Backend-Entwicklung PHP-Tutorial Detaillierte Erläuterung des zugrunde liegenden Betriebsmechanismus und der Arbeitsprinzipien von PHP

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

Aug 04, 2020 pm 03:41 PM
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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

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

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

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.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

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

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.

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

See all articles