Zum Inhalt

PHP Webserver

PHP liefert einen Webserver in der Standardinstallation mit. Dieser Webserver ist rein zu Entwicklungs- und Testzwecken und sollte nicht in Produktivumgebungen genutzt werden. Die grundsätzlichen Nutzungsmöglichkeiten dieses Web-Servers werden im folgenden beschr.

Einfache Nutzung

Mit der Option -S <Adresse>:<Port> kann der Webserver gestartet werden. Als <Addresse> kann dabei eine IP-Adresse oder einfach localhost angegeben werden. Als <Port> muss ein freier Port am Rechner angegeben werden (zB 8080). Der Webserver kann innerhalb eines Ordners in der Kommandzeile gestartet werden. Der Ordner in dem der Webserver gestartet wird, fungiert dadurch als Webroot:

> php -S localhost:8080

Nachdem Start des Webserver sind alle Dateien und Ordner, welche sich im Webroot befinden über den Webbrowser abrufbar. Alle Dateien mit Suffix .php werden entsprechend vom PHP-Interpreter verarbeitet.

Anderer Webroot

Mit der Option -t <Webroot> kann ein anderer Webroot gesetzt werden. Im folgenden Beispiel würde der Webroot C:\mein_webroot gesetzt:

> php -S localhost:9000 -t C:\main_webroot

Logging

Zum Debugging bzw. Monitoring einer PHP-Applikation kann es nützlich sein, Log-Ausgaben auf der Kommandozeile zu überwachen. Mit der PHP-Funktion error_log($message, $message_type=0) können Log-Ausgaben auf der Kommandozeile gemacht werden. Wichtig dabei ist, dass $message_type den Wert 4 bekommt, sonst gehen die Log-Ausgaben nicht auf die Kommandozeile.

<?php
error_log("Meine Log-Ausgabe...", 4);

Test

Erstellen Sie eine Datei test.php innerhalb eines beliebigen Ordners. Füllen Sie die Datei mit folgendem Inhalt:

<?php
echo "hello";
error_log("Log Ausgabe ...", 4);

Starten Sie den Webserver über die entsprechenden Optionen auf der Kommandozeile im entsprechenden Ordner:

> php -S localhost:8080

Öffnen Sie im Webbrowser die entsprechende URI (zB http://localhost:8080/test.php), die Ausgabe auf der Kommandozeile sollte demnach ein ähnliches Bild liefern (PHP Version kann abweichen!):

> php -S localhost:8080
[Wed Feb 12 09:50:28 2020] PHP 7.4.2 Development Server (http://localhost:8080) started
[Wed Feb 12 09:50:31 2020] [::1]:52285 Accepted
[Wed Feb 12 09:50:31 2020] Log Ausgabe ...
[Wed Feb 12 09:50:31 2020] [::1]:52285 [200]: GET /test.php
[Wed Feb 12 09:50:31 2020] [::1]:52285 Closing

Häufige Probleme

  • Es kann durchaus sein, dass der gewünschte Port belegt ist. Sollte bei der Ansicht im Webbrowser irgendetwas unklares erscheinen, sollten andere Ports versucht werdne (zB 8081, 9000, 9001, ...).