2011-12-04 9 views
21

Tak, w nadchodzącym wydaniu PHP 5.4 jest wbudowany serwer sieciowy, który możesz wypróbować w swoich kandydatach do wydania (o tym niedawno też dowiedziałem się!)Uruchamianie PHP 5.4 Wbudowany serwer WWW poza localhost

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

Co muszę pomóc dowiedzieć się, czy jest jakiś sposób, aby go uruchomić na nazw domen innych niż localhost (to działa prawidłowo na localhost, port 80)? Nawet 127.0.0.1 nie działa. Wpisałem fałszywe nazwy hostów do pliku hosts, aby wskazywały 127.0.0.1 i one też nie działają. Rozumiem, że to tylko kandydat do wydania, ale chciałbym się dowiedzieć, czy ktoś inny już znalazł rozwiązanie tego problemu, abym mógł przetestować moją aplikację z rzeczywistą nazwą domeny wskazującą 127.0.0.1 w moim pliku hosts. System operacyjny to Windows 7 Professional SP1.

Czego już próbowałem: 1. Googling (duh) 2. Patrząc przez php.ini dla opcji 3. wypróbowanie 127.0.0.1, moje IP w sieci LAN, WAN mojego IP z portu 80 przekazywane i NAT Problem sprzężenia zwrotnego naprawiony (router działający pod DD-WRT)

+0

Jeśli jest to * serwer internetowy *, niż lepiej na SuperUser lub ServerFault, strona ta byłaby nastawiona na * rzeczywiste programowanie z PHP *. – animuson

+0

Nie jestem do końca pewien, czy to należy, ponieważ jest to coś wbudowanego w PHP i prawdopodobnie ma coś wspólnego z konfiguracją samego PHP. Dzięki za sugestię! – Shanshui

+0

Dałem mu trochę do myślenia i myślę, że masz rację. Właśnie zgłosiłem własne pytanie, aby przenieść je do ServerFault. Mam nadzieję, że niedługo pojawi się moderator. – Shanshui

Odpowiedz

52

Zrobiłem te testy w systemie Windows XP, ale powinien działać tak samo na Linuksie, modyfikując polecenia.

uruchomić serwer testowy PHP tak:

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

0.0.0.0 zwiąże się z wszystkich dostępnych adresów IP w systemie.

Skonfigurowałem plik hosts tak, aby wskazywał na wewnętrzny adres IP systemu, na którym działa PHP, używając niestandardowej domeny. To nie jest 127.0.0.1, ponieważ odnosi się do lokalnego hosta, w moim przypadku wskazałem mój główny komputer na 192.168.88.247, który był maszyną XP z PHP. Zauważ, że zapora powinna być wyłączona lub ustawiona tak, aby zezwalała na ruch na porcie 80 na komputerze z uruchomionym php.

Skonfigurowałem router, aby przekazywał ruch do portu z zewnętrznego portu 80 do 192.168.88.247:80. Następnie za pomocą pliku hosts na komputerze z zewnętrznej sieci skonfigurowałem fałszywą domenę tak, aby wskazywała na mój adres WAN IP. Udostępniłem zewnętrzny serwer PHP.

To znaczy, że jest to tylko serwer do testowania, więc mogą istnieć nieznane zagrożenia bezpieczeństwa, które otwierają go na zewnątrz.

Nadzieję, że pomaga.

+0

Dzięki za wskazówkę 0.0.0.0! – Shanshui

+0

Dzięki za wskazówkę 0.0.0.0! zbyt ... ;-) – ZEE

+0

jak sprawić, by akceptował połączenia tylko z wcześniej określonych hostów? –