2011-12-04 2 views
21

예, 곧 출시 될 PHP 5.4에 내장 웹 서버가 있습니다 (최근에이 사실을 발견했습니다!)로컬 호스트 외부에서 PHP 5.4 내장 웹 서버 실행

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

I, 그것은 로컬 호스트가 아닌 다른 도메인 이름에서 실행 할 수있는 방법이 (가 로컬 호스트에 잘 실행의 80 포트)가있다 알아내는 데 도움이 필요 무엇입니까? 심지어 127.0.0.1이 작동하지 않습니다. 127.0.0.1을 가리 키도록 내 호스트 파일에 더미 호스트 이름을 넣었으며 작동하지 않습니다. 나는 그것이 단지 공개 후보라는 것을 알고 있지만 다른 사람들이 이미이 문제에 대한 해결책을 제시했는지 알고 싶습니다. 그래서 내 호스트 파일에서 127.0.0.1을 가리키는 실제 도메인 이름으로 내 응용 프로그램을 테스트 할 수 있습니다. OS는 Windows 7 Professional SP1입니다.

상황이 이미 시도했다 : 1. 인터넷 검색 (대만족) 2. 127.0.0.1을 시도 옵션 3.를 위해 php.ini 파일을 찾고, 포트 80 내 LAN IP, 내 WAN IP는 전송 및 NAT 루프백 문제가 수정되었습니다 (DD-WRT를 실행하는 라우터)

+0

SuperUser 또는 ServerFault보다 더 나은 웹 서버 * 인 경우이 웹 사이트는 PHP *로 실제 프로그래밍 될 것입니다. – animuson

+0

이것이 속한 것인지 확실하지는 않습니다. 이것은 PHP에 내장되어있어 PHP 자체의 구성과 관련이 있기 때문입니다. 어쨌든 제안 해 주셔서 감사합니다! – Shanshui

+0

나는 약간의 생각을했고, 나는 네가 옳다고 생각한다. 나는 ServerFault로 옮겨지기 위해 내 자신의 질문에 플래그를 붙였다. 잘만되면 사회자가 곧 올 것입니다. – Shanshui

답변

52

Windows XP 시스템에서이 테스트를 수행했지만 명령을 수정하여 Linux에서도 동일하게 작동해야합니다.

이처럼 PHP 테스트 서버를 실행

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

0.0.0.0 시스템에서 사용 가능한 모든 IP 주소에 바인딩됩니다.

네트워크상의 다른 컴퓨터에서 사용자 지정 도메인을 사용하여 PHP를 실행하는 시스템의 내부 IP를 가리 키도록 hosts 파일을 구성했습니다. 필자는 로컬 호스트를 가리키는 127.0.0.1이 아니며 필자의 메인 PC가 PHP를 실행하는 XP 시스템 인 192.168.88.247을 가리켰다. 방화벽을 사용하지 않도록 설정하거나 php를 실행하는 시스템에서 포트 80에서 트래픽을 허용하도록 설정해야합니다.

라우터를 외부 포트 80에서 192.168.88.247:80으로 트래픽을 포워딩하도록 구성했습니다. 그런 다음 외부 네트워크의 PC에서 호스트 파일을 사용하여 가짜 도메인이 내 WAN IP를 가리 키도록 구성했습니다. 외부에서 PHP 웹 서버에 액세스 할 수있었습니다.

즉, 테스트 용 서버 일 뿐이므로 바깥 세상에 알려지지 않은 보안 위험이있을 수 있습니다.

호프가 도움이됩니다.

+0

그 0.0.0.0 팁 주셔서 감사합니다! – Shanshui

+0

감사합니다 0.0.0.0 팁! too ... ;-) – ZEE

+0

미리 지정된 호스트에서만 연결을 허용하는 방법은 무엇입니까? –