Heim Backend-Entwicklung PHP-Problem Verschiedene Arten der Integration zwischen PHP und Apache

Verschiedene Arten der Integration zwischen PHP und Apache

Oct 10, 2019 am 11:51 AM
apache php 整合 类型

Verschiedene Arten der Integration zwischen PHP und Apache

1. CGI

CGI (Common Gateway Interface) wird normalerweise als Common Gateway Interface übersetzt, das die Verbindung zwischen dem HTTP-Server und darstellt Andere Programme auf dem Computer. Eine Kommunikationsschnittstelle, die es dem Webserver ermöglicht, bei Bedarf zusätzliche Programme zu starten, um dynamische Inhalte zu verarbeiten. CGI ist ein Protokoll, das definiert, wie der Webserver mit CGI-Programmen kommuniziert. Der Webserver akzeptiert die HTTP-Anfrage des Clients und erstellt dann einen Prozess zum Ausführen des CGI-Programms. Die Anfrage des Clients wird an das CGI-Programm weitergeleitet und das Ergebnis wird an den Webserver zurückgegeben, nachdem das CGI ausgeführt wurde.

Das Aufkommen von CGI hat das WEB von statisch zu dynamisch verändert. Da das Web immer beliebter wird, benötigen viele Websites dynamische Seiten, um mit den Zuschauern zu interagieren. Mit der Entwicklung der Netzwerktechnologie sind die Mängel der CGI-Methoden immer deutlicher geworden. Für jede Clientanfrage muss der Prozess eingerichtet und zerstört werden. Da HTTP eine dynamische Seite generieren muss, muss das System einen neuen Prozess starten, um das CGI-Programm auszuführen. Kontinuierliches Forken ist eine sehr zeit- und ressourcenintensive Aufgabe.

2. FastCGI

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 akzeptiert FastCGI-Prozessmanagement-Serverplanung kann gute Leistung, Skalierbarkeit, Failover-Funktionen usw. bieten.

FastCGI ist ein residentes CGI, das jederzeit ausgeführt werden kann. Solange es aktiviert ist, dauert es nicht jedes Mal, es zu forken, und es unterstützt auch verteiltes Rechnen (sodass die PHP-Programminterpretation und Die Ausführung kann dem PHP-Server überlassen werden), das heißt, sie kann auf einem anderen Host als dem Website-Server ausgeführt werden und Anfragen von anderen Website-Servern akzeptieren.

1. Laden Sie den FastCGI-Prozessmanager (IIS ISAPI oder Apache-Modul), wenn der Webserver startet.

2. Der FastCGI-Prozessmanager initialisiert sich selbst und startet mehrere CGI-Interpreterprozesse (in Multiple PHP). -cgi.exe sind im Task-Manager sichtbar und warten auf Verbindungen vom Webserver.

3. Wenn die Client-Anfrage den Webserver erreicht, wählt der FastCGI-Prozessmanager einen CGI-Interpreter aus und stellt eine Verbindung her. Der Webserver sendet CGI-Umgebungsvariablen und Standardeingaben an den FastCGI-Unterprozess php-cgi.exe.

4. Nachdem der FastCGI-Unterprozess die Verarbeitung abgeschlossen hat, gibt er über dieselbe Verbindung Standardausgabe- und Fehlerinformationen an den Webserver zurück. Wenn der untergeordnete FastCGI-Prozess die Verbindung schließt, wird die Anfrage verarbeitet. Der untergeordnete FastCGI-Prozess wartet dann auf die nächste Verbindung vom FastCGI-Prozessmanager (der in WebServer ausgeführt wird) und verarbeitet diese. Im normalen CGI-Modus wird php-cgi.exe hier beendet.

3. Modul

Beim Kompilieren von PHP in ein Apache-Modul müssen Sie den Arbeitsmodus von Apaches MPM berücksichtigen.

Zuerst müssen wir verstehen, was MPM ist:

MPM: Multi Path Modules (Multi-Path-Verarbeitungsmodule) werden verwendet, um zu definieren, wie Apache bei der Reaktion auf mehrere funktioniert Benutzeranfragenmodell. Es gibt drei MPM-Modi:

Prefork (ein Prozess antwortet auf eine Anfrage);

Worker (eine Anfrage antwortet mit einem Thread, startet mehrere Prozesse und jeder Prozess generiert mehrere Threads); >

Ereignis (ein Prozess verarbeitet mehrere Anfragen);

PHP, das als Modul installiert ist, hat keinen unabhängigen Prozess und wird zusammen mit Apache als Apache-Modul gestartet.

Unter den oben genannten drei MPM-Modi belegt der Worker-Modus weniger Speicher als der Prefork-Modus und bietet bei hoher Parallelität eine bessere Leistung. Darüber hinaus wirkt sich die Verwendung des gemischten Multiprozess- und Multithread-Modus selbst dann, wenn ein Thread aufhängt, nur auf andere Threads im selben Prozess wie der Thread aus und hat keine Auswirkungen auf andere Prozesse. Wenn jedoch besonders viele Threads die Keep-Alive-Long-Verbindungsmethode verwenden, sind die Threads bis zum Timeout belegt, was dazu führt, dass in Szenarien mit hoher Parallelität keine Threads verfügbar sind. Der Ereignismodus verwendet einen dedizierten Thread, um diese Keep-Alive-Threads zu verarbeiten, wodurch dieses Problem besser gelöst wird.

Empfohlenes Tutorial:

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonVerschiedene Arten der Integration zwischen PHP und Apache. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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 und Python: Vergleich von zwei beliebten Programmiersprachen PHP und Python: Vergleich von zwei beliebten Programmiersprachen Apr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

So setzen Sie das CGI -Verzeichnis in Apache So setzen Sie das CGI -Verzeichnis in Apache Apr 13, 2025 pm 01:18 PM

Um ein CGI-Verzeichnis in Apache einzurichten, müssen Sie die folgenden Schritte ausführen: Erstellen Sie ein CGI-Verzeichnis wie "CGI-bin" und geben Sie Apache-Schreibberechtigungen. Fügen Sie den Block "scriptalias" -Richtungsblock in die Apache-Konfigurationsdatei hinzu, um das CGI-Verzeichnis der URL "/cgi-bin" zuzuordnen. Starten Sie Apache neu.

Die dauerhafte Relevanz von PHP: Ist es noch am Leben? Die dauerhafte Relevanz von PHP: Ist es noch am Leben? Apr 14, 2025 am 12:12 AM

PHP ist immer noch dynamisch und nimmt immer noch eine wichtige Position im Bereich der modernen Programmierung ein. 1) Einfachheit und leistungsstarke Unterstützung von PHP machen es in der Webentwicklung weit verbreitet. 2) Seine Flexibilität und Stabilität machen es ausstehend bei der Behandlung von Webformularen, Datenbankoperationen und Dateiverarbeitung; 3) PHP entwickelt sich ständig weiter und optimiert, geeignet für Anfänger und erfahrene Entwickler.

So starten Sie Apache So starten Sie Apache Apr 13, 2025 pm 01:06 PM

Die Schritte zum Starten von Apache sind wie folgt: Installieren Sie Apache (Befehl: sudo apt-Get-Get-Installieren Sie Apache2 oder laden Sie ihn von der offiziellen Website herunter). (Optional, Linux: sudo systemctl

Zweck von PHP: Erstellen dynamischer Websites Zweck von PHP: Erstellen dynamischer Websites Apr 15, 2025 am 12:18 AM

PHP wird verwendet, um dynamische Websites zu erstellen. Zu den Kernfunktionen gehören: 1. Dynamische Inhalte generieren und Webseiten in Echtzeit generieren, indem Sie eine Verbindung mit der Datenbank herstellen; 2. Verarbeiten Sie Benutzerinteraktions- und Formulareinreichungen, überprüfen Sie Eingaben und reagieren Sie auf Operationen. 3. Verwalten Sie Sitzungen und Benutzerauthentifizierung, um eine personalisierte Erfahrung zu bieten. 4. Optimieren Sie die Leistung und befolgen Sie die Best Practices, um die Effizienz und Sicherheit der Website zu verbessern.

Was tun, wenn der Port Apache80 belegt ist Was tun, wenn der Port Apache80 belegt ist Apr 13, 2025 pm 01:24 PM

Wenn der Port -80 -Port der Apache 80 besetzt ist, lautet die Lösung wie folgt: Finden Sie den Prozess, der den Port einnimmt, und schließen Sie ihn. Überprüfen Sie die Firewall -Einstellungen, um sicherzustellen, dass Apache nicht blockiert ist. Wenn die obige Methode nicht funktioniert, konfigurieren Sie Apache bitte so, dass Sie einen anderen Port verwenden. Starten Sie den Apache -Dienst neu.

PHP in Aktion: Beispiele und Anwendungen in realer Welt PHP in Aktion: Beispiele und Anwendungen in realer Welt Apr 14, 2025 am 12:19 AM

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

PHP: Datenbanken und serverseitige Logik bearbeiten PHP: Datenbanken und serverseitige Logik bearbeiten Apr 15, 2025 am 12:15 AM

PHP verwendet MySQLI- und PDO-Erweiterungen, um in Datenbankvorgängen und serverseitiger Logikverarbeitung zu interagieren und die serverseitige Logik durch Funktionen wie Sitzungsverwaltung zu verarbeiten. 1) Verwenden Sie MySQLI oder PDO, um eine Verbindung zur Datenbank herzustellen und SQL -Abfragen auszuführen. 2) Behandeln Sie HTTP -Anforderungen und Benutzerstatus über Sitzungsverwaltung und andere Funktionen. 3) Verwenden Sie Transaktionen, um die Atomizität von Datenbankvorgängen sicherzustellen. 4) Verhindern Sie die SQL -Injektion, verwenden Sie Ausnahmebehandlung und Schließen von Verbindungen zum Debuggen. 5) Optimieren Sie die Leistung durch Indexierung und Cache, schreiben Sie hochlesbarer Code und führen Sie die Fehlerbehandlung durch.

See all articles