远程 PhpStorm 中的 Xdebug 无法通过 SSH 与 Virtual Box 中的项目配合使用

问题描述 投票:0回答:1

主机是Windows。在虚拟机-Ubuntu中,Docker容器中有一个PHP项目,适配器是Bridge,从主机通过IP 192.168.0.104访问。在虚拟机项目中映射到 IP 172.16.100.1(端口 10443)。我已经在主机系统中使用 JetBrains Gateway 打开了这个项目,并将 PhpStorm 安装到了虚拟机中。 PhpStorm 中的设置:

文件xdebug.ini:

[xdebug]
zend_extension=xdebug.so

xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.mode=coverage,debug
xdebug.start_with_request=yes
xdebug.remote_port=9003
xdebug.client_port=9000
xdebug.remote_host=172.16.100.1
xdebug.client_host=localhost
xdebug.discover_client_host=1
xdebug.remote_connect_back = 0
; xdebug.remote_log=/tmp/xdebug.log
; xdebug.log=/tmp/xdebug.log

稍后相同的文件:

[xdebug]
zend_extension=xdebug.so
xdebug.mode=coverage,debug
xdebug.client_host=172.16.100.1
xdebug.client_port=9003

根据9003端口分析的结果,我猜测该端口已被监听(在VM中调用):

$ sudo lsof -i -P -n | grep 9003
ld-linux- 12243           pavel  296u  IPv6 262575      0t0  TCP *:9003 (LISTEN)

我已经打开Xdebug并在index.php的开头设置了一个断点。在 PowerShell 中创建 ssh 隧道:

ssh -R 9000:localhost:9003 [email protected]

md.mydomain.local
已在
C:\Windows\System32\drivers\etc\hosts
中链接到 IP
192.168.0.104

在浏览器中导航

md.mydomain.local:10443
- 远程 PhpStorm 既不停止,也不产生类似“...而不暂停”的消息

ssh phpstorm virtualbox xdebug
1个回答
0
投票

通过此设置,您不需要 SSH 隧道。

我们也可以忽略它全部运行在Windows中的事实,因为PhpStorm通过远程开发运行在VM中;因此,从 Xdebug 的角度来看,我们有一台运行 Docker 容器的 Linux 机器,其中有一个 Web 服务器。

现在,您需要找到容器可以使用哪个主机名连接到虚拟机(而不是像您想要的那样连接到 Windows 主机),并使用该主机名作为

xdebug.client_host
。通常,
host.docker.internal
可以正常工作。

此外,请确保禁用

Ignore external connections through unregistered server configurations
,直到您在 PhpStorm 中实际获得调试会话 - 100% PHP |您手动创建的服务器条目是错误的,因此所有传入会话都将被忽略

© www.soinside.com 2019 - 2024. All rights reserved.