多年来,我一直在 Windows 中使用 VSCode + Docker,并设法拥有一个完全正常工作的开发环境,没有任何问题。
最近我用 WSL2 设置了一个新的开发环境。将我所有的项目、库、CLI 等移动到 WSL 中,使用带有 WSL2 容器的 Docker Windows 和带有远程连接到 WSL 的 Windows 上的 VSCode。一切都很顺利,我喜欢我可以把所有东西都分开的事实。
但是最近我遇到了一个我无法解决的问题,我失去了调试 PHP 文件的能力。我正在使用 VSCode Remote WSL 扩展来处理我在 WSL 中的项目,但是当我尝试调试时,没有任何反应。
对于我使用的每个开发环境(Windows、MacOS 和 WSL),我的 VSCode 中都有树调试设置。除了 WSL 之外的所有工作。当我尝试使用 WSL 进行调试时,实际上什么都没有发生,没有输出错误,没有调试控制台信息,什么都没有……
这是我的 VSCode 调试设置:
{
"version": "0.2.0",
"configurations": [{
"name": "Listen for XDebug Win10",
"type": "php",
"request": "launch",
"port": 9000,
"log": true,
"externalConsole": false,
"pathMappings": {
"/var/www/project-a/api": "\\\\wsl$\\Ubuntu\\home\\ubuntu\\PROJECTS\\project-a\\api",
},
"ignore": [
"**/vendor/**/*.php"
]
},
{
"name": "Listen for XDebug MacOS",
"type": "php",
"request": "launch",
"port": 9000,
"log": true,
"externalConsole": false,
"pathMappings": {
"/var/www/project-a/api": "/Users/ricky/PROJECTS/project-a/api",
},
"ignore": [
"**/vendor/**/*.php"
]
},
{
"name": "Listen for XDebug WSL",
"type": "php",
"request": "launch",
"port": 9000,
"log": true,
"externalConsole": false,
"pathMappings": {
"/var/www/project-a/api": "/home/ubuntu/PROJECTS/project-a/api",
},
"ignore": [
"**/vendor/**/*.php"
]
},
]
}
我究竟做错了什么?关于如何解决这个问题的任何想法?
### 更新:我已将原始正确答案更改为新答案。尽管@romain-prevost 的解决方案有效,但我认为@dark 的方法要简单得多:)