【问题标题】:Guzzle and XDebug timeoutGuzzle 和 XDebug 超时
【发布时间】:2017-10-06 13:22:33
【问题描述】:

我正在使用 Xdebug 调试带有 guzzle curl 调用的代码。

在任何其他代码中,Xdebug 都可以正常工作。

但是每当有客户使用 Guzzle 调用时,我得到的只是超时。

我正在使用:

  • PhpStorm 2017.2
  • Docker,带镜像richarvey/nginx-php-fpm:latest (nginx+php fpm)
  • Php 7.1 上的 Xdebug

这里是代码 sn-p,它冻结的地方:

    public function fetch(): string
{
    $content = '';
    $completePath = self::FETCH_PATH . $this->id;
    $request = $this->httClient->get($completePath);
    if ($request->getStatusCode() == 200) {
        $content = $request->getBody()->getContents();
    }
    return $content;
}

【问题讨论】:

  • 你在运行异步调用吗?
  • 不,只是默认创建$this->httClient = new Client();
  • 这很奇怪。 xdebug 日志是否说明了相关内容? Relevant article regarding xdebug log with phpstorm in case it's not enabled
  • 是您项目范围内的目标代码(服务于 http 请求),例如您的 API 提供者?如果是,则必须将最大外部连接数设置为 >1(我最多运行 16 个)。在首选项中转到Languages&Frameworks:PHP:debug
  • @YvesLeBorg 刚刚完成,没有任何改变。

标签: php docker xdebug guzzle


【解决方案1】:

我遇到了同样的问题。我相信当两个不同的 php 进程尝试使用相同的 IDE KEY 同时打开 Xdebug 连接时会出现问题。 (例如当您使用 php cli 运行测试并且测试向您的 apache/nginx/php-fpm 发出请求时)。我为 cli 和 fpm 分配了不同的 Xdebug IDE 密钥,它对我有用。

【讨论】:

    猜你喜欢
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 2021-06-21
    • 2016-01-25
    • 2017-06-22
    相关资源
    最近更新 更多