在我的项目中,我在运行 VM 的 Vagrant 上有以下 Xdebug 设置:
zend_extension=xdebug.so
xdebug.remote_host=10.0.2.2
debug.repomote_port=9000
xdebug.remote_enable=1
xdebug.max_nesting_level = 1000
xdebug.remote_log=/tmp/xdebug.log
在 VSCode 上,我是这样设置的:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {
"/home/vagrant/code": "${workspaceRoot}",
}
}
]
}
xdebug 设置位于 vagrant vm 中,而 ide 位于主机上。主机 Ip ( 10.0.2.2) 是通过以下命令提供的:netstat -rn | grep "^0.0.0.0 " | cut -d " " -f10
然后我使用xdebug-helper以下设置在 Firefox 上启用调试:
但是我的 IDE 无法在断点上停止执行。在调试它时,我打开了一个运行 Vagrant 的虚拟机的 shell 会话:
vagrant up && vagrant ssh
然后我使用命令使用 TCP 协议测试与它的反向连接到端口 9000(在启用 VSCode 以侦听 xdebug 之后):
nc -z -v 10.0.2.2 9000
命令本身显示消息:
Connection to 10.0.2.2 9000 port [tcp/*] succeeded!
此外,VSCode 实例也是一个 vscodium 构建,并具有felixfbecker.php-debug
插件。你知道为什么 VSCodium 无法进入断点吗?
慕姐4208626