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
, ...).