Ausführen des integrierten PHP 5.4-Webservers außerhalb von localhost

Lesezeit: 4 Minuten

Ausfuhren des integrierten PHP 54 Webservers auserhalb von localhost
Shanshui

Ja, in der kommenden Version von PHP 5.4 gibt es einen integrierten Webserver, den Sie in ihren Release-Kandidaten ausprobieren können (ich habe auch erst kürzlich davon erfahren!)

http://php.net/manual/en/features.commandline.webserver.php

Was ich beim Herausfinden benötige, ist, gibt es eine Möglichkeit, es auf anderen Domänennamen als localhost auszuführen (es läuft gut auf localhost, Port 80)? Auch 127.0.0.1 funktioniert nicht. Ich habe Dummy-Hostnamen in meine Hosts-Datei eingefügt, um auf 127.0.0.1 zu verweisen, und sie funktionieren auch nicht. Mir ist bewusst, dass es sich nur um einen Release-Kandidaten handelt, aber ich würde gerne wissen, ob bereits jemand eine Lösung für dieses Problem gefunden hat, damit ich meine App mit dem tatsächlichen Domainnamen testen kann, der auf 127.0.0.1 in meiner Hosts-Datei verweist. Betriebssystem ist Windows 7 Professional SP1.

Dinge, die ich bereits ausprobiert habe: 1. Googeln (duh) 2. Durchsuchen der php.ini nach Optionen 3. Ausprobieren von 127.0.0.1, meiner LAN-IP, meiner WAN-IP mit Port 80 weitergeleitet und NAT-Loopback-Problem behoben (Router mit DD -WRT)

  • Wenn es ein Webserver als Sie bei SuperUser oder ServerFault besser aufgehoben sind, würde diese Website darauf ausgerichtet sein eigentliche Programmierung mit PHP.

    – animus
    ♦.

    4. Dezember ’11 um 17:42

  • Ich bin mir nicht ganz sicher, ob es dazugehört, da dies etwas in PHP eingebaut ist und wahrscheinlich etwas mit der Konfiguration von PHP selbst zu tun hat. Danke trotzdem für den Vorschlag!

    – Shanshui

    4. Dezember ’11 um 17:47

  • Ich habe darüber nachgedacht, und ich glaube, Sie haben Recht. Ich habe gerade meine eigene Frage markiert, um sie nach ServerFault zu verschieben. Hoffentlich kommt bald ein Moderator.

    – Shanshui

    4. Dezember ’11 um 17:52

  • Es gehört nicht auf SF, da dies kein echter Webserver ist. Es ist nur als Entwicklungswerkzeug gedacht. Warum möchten Sie es auf anderen Domänen als localhost ausführen? Und was hast du genau probiert? php -S www.example.localnet:9000 läuft einwandfrei. Es ignoriert die tatsächlichen Host: Anfrage-Header sogar. Welche Version hast du probiert? (Beta-Versionen sind möglicherweise für Fehlerbeschwerden ungeeignet.)

    – mario

    4. Dezember ’11 um 17:53

  • Mods müssen sich am Ende entspannen… Dies ist eine völlig legitime Frage.

    – Alex Gray

    8. Januar ’12 um 17:41

Ich habe diese Tests auf einem Windows XP-System durchgeführt, sollte aber auch unter Linux funktionieren, indem ich die Befehle modifiziert habe.

Führen Sie Ihren PHP-Testserver wie folgt aus:

C:/php/php.exe -S 0.0.0.0:80
or
/usr/bin/php -S 0.0.0.0:80

0.0.0.0 bindet an alle verfügbaren IP-Adressen auf dem System.

Auf einem anderen Computer im Netzwerk habe ich die Hosts-Datei so konfiguriert, dass sie auf die interne IP des Systems verweist, auf dem PHP unter Verwendung einer benutzerdefinierten Domäne ausgeführt wird. Dies ist nicht 127.0.0.1, da sich das auf den lokalen Host bezieht. In meinem Fall habe ich meinen Haupt-PC auf 192.168.88.247 verwiesen, die XP-Maschine mit PHP. Beachten Sie, dass die Firewall deaktiviert oder so eingestellt sein sollte, dass sie den Verkehr auf Port 80 auf dem Computer mit PHP zulässt.

Ich habe meinen Router so konfiguriert, dass er den Datenverkehr vom externen Port 80 auf 192.168.88.247:80 portiert. Dann habe ich mit einer Hosts-Datei auf einem PC von einem externen Netzwerk aus die gefälschte Domäne so konfiguriert, dass sie auf meine WAN-IP verweist. Ich konnte von außen auf den PHP-Webserver zugreifen.

Das heißt, es ist nur ein Server zum Testen, daher kann es unbekannte Sicherheitsrisiken geben, die ihn für die Außenwelt öffnen.

Hoffe das hilft dir.

  • Danke für den 0.0.0.0-Tipp! auch… 😉

    – ZEE

    14. Oktober ’14 um 16:30 Uhr

  • Wie kann man Verbindungen nur von vordefinierten Hosts akzeptieren?

    – Ahmad Hajjar

    11. November ’15 um 9:11

  • @AhmadHajjar Wenn Sie möchten, dass der PHP-Webserver nur Verbindungen von bestimmten Hosts akzeptiert, müssen Sie eine Firewall auf dem lokalen Computer (oder Router, wenn er extern über NAT dient) konfigurieren, da der integrierte Server keinen Zugriff hat Kontrolle. Obwohl es nicht so sicher ist, könnten Sie das Router-Skript so konfigurieren, dass es sich die Remote-Adresse ansieht und sie mit einer Liste zulässiger Hosts vergleicht und die Anforderung beendet, wenn sie außerhalb der Liste liegt.

    – zeichnet010

    11. November ’15 um 17:14

  • Ich liebe es, auf diese Weise ist es möglich, es im Docker zu verwenden

    – FantomX1

    15. September ’18 um 16:44 Uhr

  • Hatte ein ähnliches Problem mit JavaFX. Es würde sagen, dass “Verbindung” trotz Verwendung abgelehnt wurde http://localhost in der URL. Ich bin mir nicht sicher, warum die Verbindung von JavaFX abgelehnt wird, wenn es um ist localhost, aber 0.0.0.0 behoben, danke!

    – tresf

    6. Oktober 19 um 5:47 Uhr

.

265000cookie-checkAusführen des integrierten PHP 5.4-Webservers außerhalb von localhost

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy