XDEBUG无法正常工作,但已安装并且日志显示“ Connect to client :-)”

时间:2019-02-08 10:47:01

标签: docker xdebug

已安装xDebug,已启用日志,验证正常,日志告诉我xdebug可以连接到客户端;但是-没有与IDE的连接

  • 在Docker中使用PHP7安装了xDebug
  • 将相应的ini文件添加到环境中
  • 设置断点
  • 在CLI和FPM中验证xDebug

20-xdebug.ini:

xdebug.idekey=PHPSTORM
xdebug.remote_enable=1
xdebug.remote_connect_back=1
xdebug.remote_host=172.55.0.20
xdebug.remote_port=9000
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_enable_trigger_value=PHPSTORM
xdebug.profiler_output_dir=/var/www/html/htdocs/var
xdebug.trace_enable_trigger=1
xdebug.trace_enable_trigger_value=PHPSTORM
xdebug.trace_output_dir=/var/www/html/htdocs/var
xdebug.remote_log=/var/www/html/htdocs/var/log/xdebug.log
zend_extension=/usr/lib/php/20151012/xdebug.so

我已经在Docker上安装了PHP7 FPM模块和xDebug。我已经用pecl install xdebug安装了它。

xdebug正在FPM和CLI中加载,我已将相应的文件正确放置在fpm和cli文件夹中。我可以验证它是否加载。

我已启用日志,并且其中包含以下块:

Log opened at 2019-02-08 08:12:24
I: Checking remote connect back address.
I: Checking header 'HTTP_X_FORWARDED_FOR'.
I: Remote address found, connecting to 127.0.0.1:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///var/www/html/htdocs/index.php" language="PHP" xdebug:language_version="7.0.24-1+ubuntu16.04.1+deb.sury.org+1" protocol_version="1.0" appid="16" idekey="PHPSTORM"><engine version="2.6.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2018 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

Log closed at 2019-02-08 08:12:24

所以,告诉我有一个成功的连接。

在PHPStorm中,我设置了DBGp: IDE密钥:PHPSTORM 主持人:172.55.0.1 端口:9000

我在做什么错?

1 个答案:

答案 0 :(得分:2)

此行显示了问题

I: Remote address found, connecting to 127.0.0.1:9000.

它试图远程连接回127.0.0.1,该容器内部的容器将是容器本身,而不是计算机主机。当重新连接打开时,将忽略远程主机:

  

如果启用xdebug.remote_connect_back,则忽略此设置。

https://xdebug.org/docs/all_settings#remote_host

您应禁用remote_connect_back并明确指定远程主机:

xdebug.remote_connect_back=0
xdebug.remote_host=host.docker.internal