Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPStorm、Docker和调试_Php_Macos_Debugging_Docker_Phpstorm - Fatal编程技术网

PHPStorm、Docker和调试

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上的侦听,在浏览器

我正在尝试用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上的侦听,在浏览器中设置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
    线路。默认值为0
  • 添加
    xdebug.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
    线路。默认值为0
  • 添加
    xdebug.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