Запуск PHP 5.4 встроенного веб-сервера за пределами localhost - PullRequest
25 голосов
/ 04 декабря 2011

Да, в следующем выпуске PHP 5.4 есть встроенный веб-сервер, который вы можете опробовать в их кандидатах на выпуск (я тоже узнал об этом совсем недавно!)

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

Что мне нужно, чтобы выяснить, есть ли способ заставить его работать на доменных именах, отличных от localhost (он нормально работает на localhost, порт 80)? Даже 127.0.0.1 не работает. Я поместил в свой файл hosts фиктивные имена хостов, чтобы они указывали на 127.0.0.1, и они тоже не работают. Я понимаю, что это всего лишь кандидат на релиз, но я хотел бы знать, уже кто-нибудь еще придумал решение этой проблемы, чтобы я мог протестировать свое приложение с фактическим доменным именем, указывающим на 127.0.0.1 в моем файле hosts. ОС Windows 7 Профессиональная SP1.

Вещи, которые я уже пробовал: 1. Гуглить (дух) 2. Просматривая в php.ini варианты 3. Попытка 127.0.0.1, мой IP-адрес локальной сети, мой WAN-IP с переадресованным портом 80 и исправленная проблема обратной связи NAT (маршрутизатор работает с DD-WRT)

1 Ответ

64 голосов
/ 04 декабря 2011

Я провел эти тесты в системе 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-адресам в системе.

На другом компьютере в сети я сконфигурировал файл hosts так, чтобы он указывал на внутренний IP-адрес системы, на которой запущен PHP, используя собственный домен. Это не 127.0.0.1, поскольку это относится к локальному хосту, в моем случае я указал мой основной ПК на 192.168.88.247, который был машиной XP с PHP. Обратите внимание, что брандмауэр должен быть отключен или настроен для разрешения трафика через порт 80 на компьютере с php.

Я настроил свой маршрутизатор для перенаправления трафика с внешнего порта 80 на 192.168.88.247:80. Затем, используя файл hosts на ПК из внешней сети, я настроил поддельный домен так, чтобы он указывал на мой WAN IP. Я смог получить доступ к веб-серверу PHP извне.

Тем не менее, это просто сервер для тестирования, поэтому могут быть неизвестные угрозы безопасности, открывающие его для внешнего мира.

Надеюсь, это поможет вам.

...