GWSL和XDebug-在Shopware6开发人员模板中为XDebug添加WSL隧道



我在Windows上,使用WSL。我正在尝试直接从WSL运行Phpstorm,涉及GWSL。这是为了避免WSL和Windows之间的文件系统同步。除了XDebug,一切都很好,听host.docker.internal不起作用。我使用的是Shopware6开发人员模板,它为网络应用程序创建了一个容器,并启用了XDebug。

我看到了一个使用socat将xdebug套接字映射到phpstorm侦听端口的解决方案。你能帮我做吗?

在wsl上使用docker时,您的网络至少包含3个主机:Windows -> WSL-Linux -> Docker-Linux。主机名host.docker.internal在Windows上默认指向,但如果使用GWSL,则从WSL Linux运行IDE。所以它是一个不同的主机,主机名host.docker.internal无法访问它。

我建议做下一步:

  1. 获取Ip地址WSL Linux。运行hostname -I
  2. 检查Docker Linux和IDE之间的连接。
    • 打开IDE上的端口侦听
    • 转到docker容器。在WSL Linux终端docker exec -it [your container name] sh中运行
    • 在那里,运行telnet [wsl-linux ip from step1] 9000。如果您将看到Connected to [your ip],那么它正在工作,您可以进入下一步
  3. 更新容器中xdebug.ini文件中的设置xdebug.remote_host
    • 转到docker容器。在WSL Linux终端docker exec -it [your container name] sh中运行
    • xdebug.ini中设置xdebug.remote_host=[wsl-linux ip from step1](可能您会在此处找到/usr/local/etc/php/conf.d/xdebug.ini(
    • 重新启动docker容器docker restart [your container name]

最新更新