PhpStorm在尝试运行调试会话时插入错误的client_host IP

pgpifvop  于 2023-08-02  发布在  PHP
关注(0)|答案(1)|浏览(164)

PHP解释器运行在docker容器中,Xdebug配置为

zend_extension=xdebug.so

[xdebug]
xdebug.mode=debug
xdebug.idekey=Docker
xdebug.discover_client_host=on
xdebug.client_host=host.docker.internal
xdebug.client_port=9011
xdebug.cli_color=1

字符串
当我在测试中运行调试会话时,PhpStorm运行以

[docker-compose://[/home/Projects/service/docker-compose.yaml]:php/]:php -dxdebug.mode=debug -dxdebug.client_port=9011 -dxdebug.client_host=172.24.0.83 ...


注意-dxdebug.client_host=172.24.0.83零件...但是host.docker.internal有另一个IP:

$ docker-compose exec php ping host.docker.internal
PING host.docker.internal (172.17.0.1): 56 data bytes
64 bytes from 172.17.0.1: seq=0 ttl=64 time=0.053 ms


当然,它无法启动调试会话。我没有发现这个奇怪的IP 172.24.0.83在项目中的任何地方出现,也没有在PhpStorm设置中出现。如何才能摆脱PhpStorm中这种明显的非工作状态?

uqdfh47h

uqdfh47h1#

问题解决了。有一些步骤可以在像我这样的情况下修复xdebug。
正如@LazyOne提到的,您可以通过取消选中Pass required configuration options through command line (still need to enable debug extension manually)复选框来禁用Settings/Preferences | PHP | DebugSettings部分的Xdebug CLI配置选项的自动传递。
正如@Derick提到的,最好使用机器的实际IP地址(如192.168.1.200)作为xdebug.client_host。这也适用于rootless docker。

相关问题