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

Docker/ReactPHP应用容器外部无法获取响应的问题排查

解决Docker部署ReactPHP应用外部无法访问的问题

核心问题在于你的ReactPHP服务仅绑定了容器的本地回环地址127.0.0.1:8000,这个地址只能被容器内部的进程访问,外部请求通过端口映射传递到容器后,无法被服务接收。

解决方案

修改server.php中SocketServer的绑定地址为0.0.0.0:8000,让服务监听容器的所有网络接口:

require 'vendor/autoload.php';

use Psr\Http\Message\ServerRequestInterface;

$loop = React\EventLoop\Loop::get();

$server = new React\Http\HttpServer(function (ServerRequestInterface $request) {
    echo date('Y-m-d H:i:s') . ' ' . $request->getMethod() . ' ' . $request->getUri() . PHP_EOL;
    return new React\Http\Message\Response(200, ['Content-Type' => 'text/plain'], 'Hello, World!');
});

// 修改此处的绑定地址为0.0.0.0:8000
$socket = new React\Socket\SocketServer('0.0.0.0:8000', [], $loop);
$server->listen($socket);

echo 'Listening on ' . str_replace('tcp:', 'http:', $socket->getAddress()) . "\n";

$loop->run();

验证步骤

  1. 重启Docker容器:
docker-compose down && docker-compose up --build
  1. 在容器外部通过浏览器或Postman访问http://localhost:8000,即可正常获取响应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:45:05