Reputation: 324650
PHP 5.4 comes with a built-in server for development purposes. This is the kind of thing I've been waiting for months, because up until now I've had to sort of hack together a PHP script that listens for incoming connections and handles them (because I don't want to go to the trouble and overhead of installing an actual server).
The main thing left for me to worry about is: how can I have a port assigned?
In my PHP script, I used to do this:
socket_bind($sock,"localhost",0) or die("Could not bind socket");
socket_getsockname($sock,$ip,$port);
$port
would then be the port number assigned by the OS based on what is available.
I was just wondering if any such feature existed in PHP's built-in server and, if so, what the command line should be to access it.
Upvotes: 9
Views: 2755
Reputation: 324650
Answering my own question (again), I used the following batch script to find an available port and start the server:
@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=
Upvotes: 1