You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP内置测试服务器发起请求后冻结问题求助

问题根源

PHP内置测试服务器是单线程的——当你通过浏览器访问test.php时,服务器正忙着处理这个请求;此时test.php再发起HTTP请求到同一服务器,服务器根本腾不出手响应新请求,两边互相等待,最后就卡死了,不管请求的是PHP脚本还是静态TXT文件都会触发这个问题。

解决办法

1. 开启多进程模式启动内置服务器(PHP 7.4及以上可用)

PHP 7.4之后给内置服务器添加了多进程支持,启动时设置环境变量指定工作进程数即可:

PHP_CLI_SERVER_WORKERS=4 php -S localhost:8000

4是进程数量,可按需调整,多进程能同时处理多个请求,自然不会堵死。

2. 直接包含文件,不走HTTP请求

如果只是要执行其他PHP文件的逻辑、获取输出结果,没必要绕HTTP请求,直接用include配合输出缓冲区就能实现,效果和浏览器访问一致,还不会有阻塞问题:

// 替代HTTP请求index.php的写法
ob_start(); // 开启输出缓冲区
include 'index.php'; // 执行目标文件
$result = ob_get_clean(); // 捕获输出内容
echo $result;

3. 换用正式Web服务器

要是需要更贴近生产环境的测试,直接用Nginx+PHP-FPM或者Apache,这类服务器本身就是多进程/多线程架构,从根源上不会出现单线程阻塞的问题。

内容的提问来源于stack exchange,提问作者Ood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:01:12