PHP 5.4 поставляется со встроенным сервером для целей разработки. Это то, что я ожидал в течение нескольких месяцев, потому что до сих пор мне приходилось разбирать скрипт PHP, который слушает входящие соединения и обрабатывает их (потому что я не хочу идти на поводу и накладные расходы на установку реального сервера).
Главное, на что я могу беспокоиться: как я могу назначить порт?
В моем PHP-скрипте я использовал это:
socket_bind($sock,"localhost",0) or die("Could not bind socket"); socket_getsockname($sock,$ip,$port);
$port
будет номером порта, назначенным ОС на основе того, что доступно.
Мне просто интересно, существует ли такая функция на встроенном сервере PHP, и если да, то в чем должна заключаться доступ к командной строке.
Отвечая на мой собственный вопрос (опять же), я использовал следующий пакетный скрипт, чтобы найти доступный порт и запустить сервер:
@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=
Из документов PHP :
Пример # 1 Запуск веб-сервера
$ cd ~/public_html $ php -S localhost:8000
Там у вас это – сервер работает на порту 8000.