我在Windows上使用WSL。我试图直接从WSL运行Phpstorm,涉及GWSL。这样可以避免WSL和Windows之间的文件系统同步。除了XDebug之外,一切都运行得很完美,听host.docker.internal不起作用。我使用Shopware6开发人员模板,它为webapp创建一个容器,启用XDebug。
我看到了一个解决方案,它使用套接字将xdebug套接字映射到phpstorm侦听端口。你能帮我做吗?
发布于 2022-08-23 13:11:32
在wsl上使用docker时,您有一个至少包含3台主机的网络:Windows -> WSL-Linux -> Docker-Linux。默认情况下,主机名host.docker.internal指向Windows,但如果使用GWSL,则可以从WSL运行IDE。因此,它是一个不同的主机,主机名host.docker.internal无法访问它。
我建议采取以下步骤:
hostname -Idocker exec -it [your container name] shtelnet [wsl-linux ip from step1] 9000。如果您将看到step.,那么它就工作了,您可以转到下一个Connected to [your ip]。
xdebug.remote_host在xdebug.ini文件中您的容器docker exec -it [your container name] shxdebug.remote_host=[wsl-linux ip from step1]中,在您的xdebug.ini (可能的话,您会在这里找到它/usr/local/etc/php/conf.d/xdebug.ini)docker restart [your container name]。
https://stackoverflow.com/questions/73456175
复制相似问题