PHPStorm、Docker和调试
我正在尝试用PHPStorm调试php代码。我和docker在Mac上。 我使用以下方法在docker上配置了xdebug:PHPStorm、Docker和调试,php,macos,debugging,docker,phpstorm,Php,Macos,Debugging,Docker,Phpstorm,我正在尝试用PHPStorm调试php代码。我和docker在Mac上。 我使用以下方法在docker上配置了xdebug: zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so" xdebug.remote_enable = 1 xdebug.remote_connect_back=1 xdebug.idekey = "PHPSTORM" 然后我打开PHPStorm上的侦听,在浏览器
zend_extension="/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_connect_back=1
xdebug.idekey = "PHPSTORM"
然后我打开PHPStorm上的侦听,在浏览器中设置cookie,然后加载一个页面,在相应的点上设置断点。
碰巧,PHPStorm检测到传入连接,并要求我接受该连接。
我单击accept,调试将充满变量,1秒后,连接停止,调试会话结束
我做错了什么?我无法让
xdebug.remote\u connect\u back=1
为我工作
相反,您需要提供docker主机的IP地址。自docker 18.03发布以来,您可以从运行的docker容器中引用host.docker.internal
DNS条目
您应该尝试以下方法:
xdebug.remote\u connect\u back=1
线路。默认值为0xdebug.remote\u host=host.docker.internal
其余步骤听起来正确。我无法让
xdebug.remote\u connect\u back=1
为我工作
相反,您需要提供docker主机的IP地址。自docker 18.03发布以来,您可以从运行的docker容器中引用host.docker.internal
DNS条目
您应该尝试以下方法:
xdebug.remote\u connect\u back=1
线路。默认值为0xdebug.remote\u host=host.docker.internal
其余步骤听起来正确。您是否在容器中启用了x调试端口?(使用-p选项)默认情况下,x debug使用端口9000。端口9000由主机上的PHPStorm打开,连接从xdebug(容器中)传出到PHPStorm(计算机上)。因此,我认为我不需要暴露端口9000。你不这么认为吗?我认为它值得一试,不是100%确定它是解决方案,但我没有其他想法:\n只是尝试过,它不起作用:(@LazyOne谢谢,是我:PDid你在容器中启用了x调试端口?(使用-p选项)默认情况下,x debug使用端口9000。端口9000由主机上的PHPStorm打开,连接从xdebug(容器中)传出到PHPStorm(计算机上).因此,我不认为我需要公开端口9000。你不这样认为吗?我认为它值得一试,不是100%确定它是解决方案,但我没有其他想法:\n只是尝试了一下,它不起作用:(@LazyOne谢谢,是我:P