讨论数量:
我试过win + vscode + wsl + docker + xdebug 2/3 的配置, 试过 mac + vscode + docker + xdebug 2 的配置,但凡少一层我或许都能帮你点什么。
我的经验是通过插件 Dev Container
进到容器,然后配置 vscode.xdebug 扩展
(无所谓具体哪个), 让xdubug能访问到vscode的端口,通了就好了。以我的例子(如下图)
我觉得目前看起来问题是在于如何让vscode
进入container
在PHP运行环境中配置xdebug3
[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=${Your_IDE_Host}
xdebug.client_port=${Your_IDE_Port}
在vscode中安装 PHP Debug
插件
配置调试文件 launch.json
,配置示例
pathMappings 配置想将 运行环境的项目目录和编辑器目录建立映射关系
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": ${Your_IDE_Port},
"pathMappings": {
"/www/${workspaceRootFolderName}": "${workspaceFolder}"
}
}
]
}
可能存在的问题: ${Your_IDE_Host}
要保证在PHP运行环境能访问到vscode所有的主机,在你的这套环境里,因为docker没法和vscode主机直接通信,应该是要填写宿主机virtualbox的ip,然后将虚拟机的端口${Your_IDE_Port}
映射到vscode主机上对应的端口上。
正常来说,就可以开始调试了
推荐文章: