带IntelliJ和Docker的Xdebug不工作。如何解决?

带IntelliJ和Docker的Xdebug不工作。如何解决?,docker,intellij-idea,xdebug,Docker,Intellij Idea,Xdebug,我的IDE是IntelliJ,它是用Xdebug和PHP5.6配置和工作的 它在我的主机(MacOS)中工作,但当我打开Docker时,调试过程失败 如果我试图在运行映像时暴露端口9000(docker run-p 80:80-p 9000:9000…),我会在IntelliJ->中发现一个错误,端口9000正在使用中 如果我不暴露端口9000,IntelliJ内部就什么也得不到 下面是docker内部php.ini的一部分:它显示了xdebug已启用 [xdebug] zend_extensi

我的IDE是IntelliJ,它是用Xdebug和PHP5.6配置和工作的

它在我的主机(MacOS)中工作,但当我打开Docker时,调试过程失败

如果我试图在运行映像时暴露端口9000(
docker run-p 80:80-p 9000:9000…
),我会在IntelliJ->
中发现一个错误,端口9000正在使用中

如果我不暴露端口9000,IntelliJ内部就什么也得不到

下面是docker内部php.ini的一部分:它显示了xdebug已启用

[xdebug]
zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_autostart=1


我做错了什么?

1)“如果我试图暴露端口9000”为什么?请先查看xdebug文档。是xdebug连接到IDE,而不是其他方式。通过在Docker中公开此端口,可以防止IDE侦听它。2)
xdebug.remote\u host=localhost
——为什么
localhost
?相同-----它必须是运行IDE的计算机的IP(从Docker容器内部看)。一般来说--使用
phpstorm
+
xdebug
+
docker
标签搜索此网站。。或者获取PhpStorm的相关手册(相同的配置逻辑)。我执行了所有更改,但仍然不工作。我的猜测是xdebug没有在主机内找到intelliJ。可能是在Docker内部查找,这一定是错误的IP问题——您必须为
xdebug.remote\u host
指定正确的IP,并让IDE在主机操作系统的xdebug端口上侦听。Xdebug不“搜索”任何东西(在
connect\u back
选项的情况下,它会检查可能包含IP的一组标准请求头(因此这里可以使用“搜索”一词),但在Docker的情况下,它们几乎没有有用的信息),例如,最近的--你可以检查他的最终解决方案。或者这一个-,OP谈论设置正确的IP…1)“如果我试图公开端口9000”为什么?请先查看xdebug文档。是xdebug连接到IDE,而不是其他方式。通过在Docker中公开此端口,可以防止IDE侦听它。2)
xdebug.remote\u host=localhost
——为什么
localhost
?相同-----它必须是运行IDE的计算机的IP(从Docker容器内部看)。一般来说--使用
phpstorm
+
xdebug
+
docker
标签搜索此网站。。或者获取PhpStorm的相关手册(相同的配置逻辑)。我执行了所有更改,但仍然不工作。我的猜测是xdebug没有在主机内找到intelliJ。可能是在Docker内部查找,这一定是错误的IP问题——您必须为
xdebug.remote\u host
指定正确的IP,并让IDE在主机操作系统的xdebug端口上侦听。Xdebug不“搜索”任何东西(在
connect\u back
选项的情况下,它会检查可能包含IP的一组标准请求头(因此这里可以使用“搜索”一词),但在Docker的情况下,它们几乎没有有用的信息),例如,最近的--你可以检查他的最终解决方案。或者这一个--OP谈论的是设置正确的IP。。。