0

我不能用 PHP 7.4.20 激活 Xdebug 3.0.4 的步进调试器。

Xdebug 功能状态:

在此处输入图像描述

所以,我的 Xdebug 配置是:

[xdebug]
;xdebug.discover_client_host=1
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.remote_handler=dbgp
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.max_nesting_level=1000
xdebug.idekey=PHPSTORM

此外,我的 Xdebug 运行到 PHP FPM docker 容器中。

如果有人可以帮助我:),谢谢。

4

1 回答 1

0

我无法直接解决这个问题,但它可以使用 SSH 隧道。虽然我的 docker 主机 IP 172.17.0.1 应该一样好,nc -vz 172.17.0.1 9003可以轻松连接,但出于某种原因 Apache+PHP+Xdebug 只是拒绝这样做。

因此,我通过连接到我的容器ssh -R 9003:127.0.0.1:9003 dev@172.17.0.2,然后将我的更改xdebug.client_host127.0.0.1而不是运行 IDE 的位置 (172.17.0.1)。这个 SSH 隧道将使得任何在本地连接到容器的端口 9003 的东西实际上都会从我启动 ssh 命令的地方连接到 9003(这是我运行 IDE 的主机)。

然后,当我访问我的 PHP 页面(甚至运行 CLI php 脚本)时,Xdebug 连接并正常工作,没有任何问题,并且步骤调试工作正常。

我不知道为什么这可以通过 SSH 隧道工作,但我怀疑 docker 网络有一些我不熟悉的东西。

于 2021-08-10T02:35:17.667 回答