PHP ist eine Skriptsprache, die einen PHP-Interpreter benötigt, um PHP-Dateien zu analysieren und auszuführen. Wenn Sie PHP als CGI zur Bearbeitung von Webanfragen verwenden, muss es in eine Art Webserver eingebettet werden, am häufigsten in Apache oder IIS. Das bedeutet, dass Sie vor der Verwendung von PHP Apache oder IIS installieren und richtig konfigurieren müssen und PHP-Integrationsparameter. Obwohl diese Konfiguration standardisiert wurde und die Dokumentation sehr umfangreich ist, stoßen wir bei der Installation der Apache- und PHP-Integration immer noch auf Probleme. Außerdem möchten wir manchmal nur eine einfache PHP-Funktion testen und dafür den Apache-Dienst nicht installieren und starten Zweck. .
Der offiziellen Dokumentation zufolge dient dieser integrierte Webserver jedoch nur der Entwicklung und dem Testen und wird nicht für den Einsatz in Produktionsumgebungen empfohlen. Weil dieser Server Anfragen nacheinander akzeptiert und verarbeitet und sie nicht gleichzeitig bearbeiten kann.
Dieser integrierte Webserver ist sehr bequem zu verwenden, Sie müssen nur den folgenden Befehl ausführen:
$ php -S localhost:8000
Dann können Sie darauf zugreifen. Nach dem Start auf diese Weise ist das Standardverzeichnis des Webdienstes das aktuelle Verzeichnis, in dem der Befehl ausgeführt wird. Wenn Sie das aktuelle Verzeichnis nicht verwenden möchten, müssen Sie es mit dem Parameter -t angeben.
Beispiel #1 Webserver starten
$ cd ~/public_html
$ php -S localhost:8000
Informationen zur Terminalausgabe:
PHP 5.4.0 Development Server gestartet am Do, 21. Juli 10:43:28 2011
Abhören auf localhost:8000
Das Stammverzeichnis des Dokuments ist /home/me/public_html
Drücken Sie Strg-C, um den Vorgang zu beenden
Wenn die Adressen http://localhost:8000/ und http://localhost:8000/myscript.html angefordert werden, gibt das Terminal Informationen ähnlich der folgenden aus:
PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011 Listening on localhost:8000 Document root is /home/me/public_html Press Ctrl-C to quit. [Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read [Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read [Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read [Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read [Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read
Beispiel Nr. 2 Geben Sie beim Starten des Webservers das Stammverzeichnis des Dokuments an
$ cd ~/public_html
$ php -S localhost:8000 -t foo/
Informationen zur Terminalanzeige:
PHP 5.4.0 Development Server wurde am Do, 21. Juli 2011, 10:50:26 Uhr gestartet
Abhören auf localhost:8000
Das Stammverzeichnis des Dokuments ist /home/me/public_html/foo
Drücken Sie Strg-C, um den Vorgang zu beenden
Wenn Sie eine PHP-Skriptdatei an die Startbefehlszeile anhängen, wird diese Datei als „Router“-Skript behandelt. Dieses Skript ist für alle HTTP-Anfragen verantwortlich. Wenn dieses Skript bei der Ausführung FALSE zurückgibt, wird die angeforderte Ressource normal zurückgegeben. Wenn es nicht FALSE ist, wird der von diesem Skript generierte Inhalt im Browser angezeigt.
Beispiel #3 Verwendung eines Router-Skripts
In diesem Beispiel gibt eine Anfrage nach einem Bild das entsprechende Bild zurück, aber eine Anfrage nach einer HTML-Datei zeigt „Willkommen bei PHP“ an:
<?php // router.php if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) { return false; // serve the requested resource as-is. } else { echo "<p>Welcome to PHP</p>"; } ?>
$ php -S localhost:8000 router.php
Beispiel #4 Stellen Sie fest, ob Sie den integrierten Webserver verwenden
Verwenden Sie die Programmbeurteilung, um die unterschiedlichen Verhaltensweisen desselben PHP-Router-Skripts im integrierten Webserver und im Produktionsserver anzupassen:
<?php // router.php if (php_sapi_name() == 'cli-server') { /* route static assets and return false */ } /* go on with normal index.php operations */ ?>
$ php -S localhost:8000 router.php
Der integrierte Webserver erkennt einige Standard-MIME-Ressourcen mit den Erweiterungen: .css, .gif, .htm, .html, .jpe, .jpeg, .jpg, .js, .png, .svg und .txt. Die Unterstützung für die Erweiterungen .htm und .svg wird erst nach PHP 5.4.4 unterstützt.
Beispiel Nr. 5 Umgang mit nicht unterstützten Dateitypen
Wenn Sie möchten, dass dieser Webserver nicht unterstützte MIME-Dateitypen korrekt verarbeitet, gehen Sie wie folgt vor:
<?php // router.php $path = pathinfo($_SERVER["SCRIPT_FILENAME"]); if ($path["extension"] == "ogg") { header("Content-Type: video/ogg"); readfile($_SERVER["SCRIPT_FILENAME"]); } else { return FALSE; } ?> $ php -S localhost:8000 router.php
Wenn Sie remote auf diesen integrierten Webserver zugreifen möchten, muss Ihr Startbefehl wie folgt geändert werden:
Beispiel Nr. 6 Fernzugriff auf diesen integrierten Webserver
$ php -S 0.0.0.0:8000
Auf diese Weise können Sie über Port 8000 aus der Ferne auf den integrierten Webserver zugreifen
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird. Ich hoffe auch, dass jeder Script House unterstützt.