找到PHP服务器的可用端口

时间:2012-03-26 14:37:37

标签: php

PHP 5.4附带内置服务器用于开发目的。这是我几个月来一直在等待的事情,因为到目前为止我还不得不破解一个PHP脚本,它会监听传入的连接并处理它们(因为我不知道)想要解决安装实际服务器的麻烦和开销。)

让我担心的主要问题是:如何分配端口?

在我的PHP脚本中,我曾经这样做过:

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

$port将是操作系统根据可用内容分配的端口号。

我只是想知道PHP的内置服务器中是否存在任何此类功能,如果是,那么命令行应该是什么来访问它。

2 个答案:

答案 0 :(得分:1)

回答我自己的问题(再次),我使用以下批处理脚本查找可用端口并启动服务器:

@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=

答案 1 :(得分:0)

来自PHP docs

示例#1启动Web服务器

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

你有它 - 服务器在端口8000上运行。