Найти доступный порт для PHP сервера - PullRequest
8 голосов
/ 26 марта 2012

PHP 5.4 поставляется со встроенным сервером для целей разработки.Это то, чего я ждал месяцами, потому что до сих пор мне приходилось собирать PHP-скрипт, который прослушивает входящие соединения и обрабатывает их (потому что я не хочу идти на поводуи накладные расходы на установку реального сервера).

Главное, о чем мне остается беспокоиться: как мне назначить порт?

В моем PHP-скрипте я делал это раньше:

socket_bind($sock,"localhost",0) or die("Could not bind socket");
socket_getsockname($sock,$ip,$port);

$port будет тогда номером порта, назначенным ОС в зависимости от того, что доступно.

Мне просто интересно, существует ли какая-либо такая функция во встроенном сервере PHPи, если да, то какой должна быть командная строка для доступа к ней.

Ответы [ 2 ]

1 голос
/ 17 июля 2012

Отвечая на мой собственный вопрос (снова), я использовал следующий пакетный скрипт, чтобы найти доступный порт и запустить сервер:

@echo off
for /L %%a in (8000,1,8100) do netstat /a /n | find "%%a" | find "LISTENING" >NUL || set tmp_phpserver=%%a&& goto found
echo No free ports found in range 8000-8100...
pause
exit
:found
echo Starting server on port %tmp_phpserver%
start "PHP server %~p1 on localhost:%tmp_phpserver%" /min php -S localhost:%tmp_phpserver%
echo Server started
timeout 3
start http://localhost:%tmp_phpserver%/%~nx1
set tmp_phpserver=
0 голосов
/ 27 марта 2012

Из PHP документов :

Пример # 1 Запуск веб-сервера

 $ cd ~/public_html
 $ php -S localhost:8000

Там у вас есть - серверработает на порту 8000.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...