Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/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
无法从内部Docker容器和WSL2实例连接Xdebug_Docker_Docker Compose_Phpstorm_Xdebug - Fatal编程技术网

无法从内部Docker容器和WSL2实例连接Xdebug

无法从内部Docker容器和WSL2实例连接Xdebug,docker,docker-compose,phpstorm,xdebug,Docker,Docker Compose,Phpstorm,Xdebug,我必须做PHP开发,为此我得到了一台Windows10机器,这是我无法改变的。因此,我使用WSL2功能来使用Ubuntu20.04设置和开发服务器 第一次尝试: 使用带有Docker桌面的Windows。我配置了环境,但遇到了问题。项目卷和Docker之间的映射导致Composer、git等重要处理非常缓慢。所以这对我来说是行不通的 第二次尝试: 直接在WSL2实例中设置开发环境。这很有效。我能够使用PhpStorm连接Xdebug调试器。但是,其余的操作非常缓慢,对我来说是不可行的 第三次尝试

我必须做PHP开发,为此我得到了一台Windows10机器,这是我无法改变的。因此,我使用WSL2功能来使用Ubuntu20.04设置和开发服务器

第一次尝试:

使用带有Docker桌面的Windows。我配置了环境,但遇到了问题。项目卷和Docker之间的映射导致Composer、git等重要处理非常缓慢。所以这对我来说是行不通的

第二次尝试:

直接在WSL2实例中设置开发环境。这很有效。我能够使用PhpStorm连接Xdebug调试器。但是,其余的操作非常缓慢,对我来说是不可行的

第三次尝试:

我被建议做以下事情:创建WSL2 Ubuntu 20.04实例。在其上安装docker并将项目文件夹直接存储在
\\wsl$
中。在这个WSL2实例中,我运行了一个DockerWebServer容器。本地主机可以访问Web服务器

这似乎工作得很好,但不知道为什么。。。docker Web服务器上运行的网站非常快,执行git或composer命令也非常快。我使用PhpStorm直接从
\\wsl$
位置打开项目文件夹

我遇到的唯一问题是无法使用PhpStorm创建Xdebug会话

我的问题是:如何配置开发环境以便使用Xdebug

事实和规范

  • Windows 10作为主机

  • WSL实例:Ubuntu 20.04

  • Docker Web服务器实例:Ubuntu 20.04(php7.4-fmp和apache2,xdebug 3.0.3端口9000)

  • docker Web服务器容器可以访问主机网络(192.x.x.x.)

  • docker Web服务器容器可以访问WSL网络(172.20.x.x)

我使用以下xdebug设置:

xdebug.mode = debug
xdebug.client_host = host.docker.internal (this goes to the 192.x.x. address)

关于如何使Xdebug在此设置中工作,有什么建议吗?

如果使用纯WSL2工作,那么总体配置应该可以(使用的端口号和其他非IP Xdebug配置(顺便说一句:您说使用了
9000
,但是Xdebug v3默认使用9003..并且您的简要Xdebug配置没有提到这一时刻))。因此,我建议首先启用Xdebug日志并尝试调试——看看它尝试连接到哪里(如果有)以及响应是什么。我个人没有使用过这种“WSL2内部Docker”设置,所以现在无法给出任何精确的说明。