Heim >Backend-Entwicklung >PHP-Tutorial >Beispiel für den in PHP5.4 integrierten Webserver_php

Beispiel für den in PHP5.4 integrierten Webserver_php

WBOY
WBOYOriginal
2016-08-17 13:02:35989Durchsuche

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:

<&#63;php
// router.php
if (preg_match('/\.(&#63;:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
return false;  // serve the requested resource as-is.
} else {
echo "<p>Welcome to PHP</p>";
}
&#63;>

$ 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:

<&#63;php
// router.php
if (php_sapi_name() == 'cli-server') {
/* route static assets and return false */
}
/* go on with normal index.php operations */
&#63;>

$ 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:

<&#63;php
// router.php
$path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
if ($path["extension"] == "ogg") {
header("Content-Type: video/ogg");
readfile($_SERVER["SCRIPT_FILENAME"]);
}
else {
return FALSE;
}
&#63;>

$ 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.

Stellungnahme:
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