Inhaltsverzeichnis
Das zugrunde liegende Arbeitsprinzip von PHP
Die Beziehung zwischen Apache und PHP
Apache-Lebenszyklus
Apache-Anfrageverarbeitungsprozess
Android-Systemarchitekturdiagramm
Heim Backend-Entwicklung PHP-Tutorial Die Grundlagen der Funktionsweise von PHP

Die Grundlagen der Funktionsweise von PHP

Jul 04, 2018 pm 04:43 PM

Dieser Artikel stellt hauptsächlich die Grundlagen des Arbeitsprinzips von PHP vor. Er hat einen gewissen Referenzwert. Jetzt kann ich ihn mit allen teilen, die ihn brauchen.

Ich habe kürzlich einen Server gebaut fühlte sich an wie eine Lampe. Wie genau funktioniert es bzw. wie ist es angeschlossen? Normalerweise schreibe ich nur Programme und habe noch nie über das Funktionsprinzip zwischen ihnen nachgedacht:

Das zugrunde liegende Arbeitsprinzip von PHP

Abbildung 1 PHP-Struktur

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

①Zend-Engine

Zend ist in reinem C implementiert und ist der Kernbestandteil von PHP. Es integriert die PHP-Codeübersetzung (eine Reihe von Kompilierungsprozessen wie lexikalische und syntaktische Analyse), verarbeitet ausführbare Opcodes und implementiert entsprechende Verarbeitungsmethoden, implementiert grundlegende Datenstrukturen (wie Hashtable, oo), Speicherzuweisung und -verwaltung und stellt entsprechende API-Methoden bereit Externe Anrufe sind der Kern von allem, und alle peripheren Funktionen werden rund um Zend implementiert.

②Erweiterungen

Erweiterungen rund um die Zend-Engine bieten verschiedene grundlegende Dienste auf Komponentenbasis. Unsere gemeinsamen verschiedenen integrierten Funktionen (z. B. Array-Serien), Standardbibliotheken usw. sind alle durch Erweiterungen Um dies zu erreichen, können Benutzer bei Bedarf auch ihre eigenen 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 Anwendungen von Erweiterungen).

③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 durch 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 die Anwendung der oberen Ebene

④ später im Sapi-Kapitel vorstellen

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 Webserver Anwenden, als Skript über die Befehlszeile ausführen usw.

Architektonische Ideen:

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

Die mittlere Schicht (Sapi) isoliert das Web Server und PHP

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

Wenn PHP ein Auto wäre, dann

Das Gerüst 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 die Ausführung eines PHP-Programms bedeutet, dass das Auto auf der Straße fährt.

Daher benötigen wir: Motor mit hervorragender Leistung + geeignete Räder + korrekte Landebahn

Die Beziehung zwischen Apache und PHP

Apache für PHP-Parsing ist abgeschlossen durch das PHP-Modul unter vielen Modulen.

Um PHP endlich 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:

In Unix/Linux-Umgebung:

LoadModule php5_module module/mod_php5.so

AddType application/x-httpd-php .php

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

In Windows-Umgebung:

LoadModule php5_module d:/php/php5apache2.dll

AddType application/x-httpd-php .php

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

Diese beiden Konfigurationen teilen 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.

Apache-Lebenszyklus

Apache-Anfrageverarbeitungsprozess

Apache-Anfrage Ausführliche Erklärung der Verarbeitungsschleife
Was wird in den 11 Phasen der Apache-Anforderungsverarbeitungsschleife getan?

1. Post-Read-Request-Phase

Im normalen Anfrageverarbeitungsprozess ist dies die erste Phase, in der das Modul Hooks einfügen kann. Diese Phase kann für Module genutzt werden, die sehr früh mit der Bearbeitung von Anfragen beginnen möchten.

2. URI-Übersetzungsphase
Die Hauptarbeit von Apache in dieser Phase: Zuordnen 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. Zugriffskontrollphase
Die Hauptarbeit von Apache in dieser Phase: Überprüfen, ob der Zugriff auf die angeforderte Ressource gemäß der Konfigurationsdatei erlaubt 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. Phase der MIME-Typprüfung
Die Hauptarbeit von Apache in dieser Phase: Bestimmen der zu verwendenden Inhaltsverarbeitungsfunktion basierend auf 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 Client zurückgegebene Inhalte zu generieren und für das Senden einer angemessenen Antwort an den Client verantwortlich zu sein. Diese Phase ist der Kernbestandteil des gesamten Prozesses.

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

11. Bereinigungsphase
Die Hauptarbeit von Apache in dieser Phase: Bereinigen der nach Abschluss dieser Anforderungstransaktion verbleibenden Umgebung, z. B. die Verarbeitung von Dateien und Verzeichnissen oder das Schließen von Sockets usw Dies ist das erste Mal, dass Apache die letzte Phase der Anforderungsverarbeitung durchführt.

LAMPENarchitektur:

Vier Schichten von unten nach oben:

①liunx gehört zur unteren Schicht von das Betriebssystem

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

③php: Es gehört zur serverseitigen Programmiersprache und ist über das Modul php_module mit Apache verknüpft

④MySQL und andere Webdienste: Gehört zum Anwendungsdienst, der über das Erweiterungs-Plug-In-Modul von PHP mit MySQL verknüpft ist

Android-Systemarchitekturdiagramm

Vergleichen Sie das Architekturdiagramm von Lampe und Android. Es scheint der Lampenarchitektur etwas ähnlich zu sein. Ich kenne Android nicht, aber es fühlt sich ein bisschen ähnlich an. Experten können auf die Unterschiede hinweisen

Von oben nach unten:

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

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

2. Anwendungsframework----Java------ -------PHP-Sprache und -Bibliothek

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

⒋Linux-Kernel: - --Betriebssystem-------L

in der Lampenarchitektur Die Beziehung zwischen der Lampe und dem Inneren des Computers

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

PHP-Sprache wird von Zend in Maschinensprache kompiliert und betreibt die CPU

Auf der Datenbank handelt es sich um einen E/A-Vorgang und eine mechanische Bewegung. Mit anderen Worten: Der Engpass einer Website wird durch das Lesen und Schreiben auf die Festplatte verursacht Puffertechnologie bedeutet, dass die Datenoperationen im Mencache abgelegt werden und bei Erreichen einer bestimmten Größenordnung sofort in die Datenbank geschrieben werden. Der Mencache gehört zur Schlüssel-Wert-Beziehung

relationale Daten. Es basiert auch auf diesem Konzept und gehört auch zur Schlüssel-Wert-Beziehung.

Häufige Lesevorgänge ------ Legen Sie es in den Mencache schreibe weniger----Füge es in nosql ein----- -Die Lesefunktion ist sehr leistungsstark!

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Einführung in die MVC-Struktur der PHP-Quellcode-Differenzierungsplattform

Analyse des Laravel5-Schnellauthentifizierungslogikprozesses

Das obige ist der detaillierte Inhalt vonDie Grundlagen der Funktionsweise 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)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate 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)

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.

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

See all articles