在 Windows 10 上使用 Laradock 时,Xdebug 无法使用 Visual studio 代码
Xdebug is not working with Visual studio code when using Laradock on Windows 10
我尝试在 windows 10 台机器上用可视化代码配置 Xdebug 和 Laradock。
我看到在使用 phpinfo();
时启用了 Xdebug 我得到了这些值:
Xdebug Version 2.9.8
xdebug.remote_host host.docker.internal
xdebug.remote_port 9000
我还在调试中的 Visual Code 中启用了这个配置:
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"log": true,
"stopOnEntry":true,
"pathMappings": {
"/var/www": "${workspaceRoot}/public",
},
"ignore": [
"**/vendor/**/*.php"
]
}
]
我测试了使用此命令启动 telnet:telnet 192.168.1.10 9000
以查看我是否可以连接到调试会话。
当我启动浏览器时,要让 php-fpm 连接回我的可视代码会话,我错过了什么?我需要发送密钥还是应该只是启动浏览器?
关于更多调试的任何建议我都可以找到请求卡住的地方?有 xdebug 的日志吗?
像这样更新 laradock\php-fpm\xdebug.ini 和 laradock\workspace\xdebug.ini 后,我开始工作了:
xdebug.remote_host=host.docker.internal
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.idekey=VSCODE
xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.cli_color=0
xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1
我也修改了 .vscode\launch.json 这样:
{
// 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",
//"type": "pwa-chrome",
//"url": "http://127.0.0.1//posts/first",
"port": 9000,
"log": true,
"stopOnEntry":false,
"pathMappings": {
"/var/www": "I:\dev\project-z",
},
"ignore": [
"**/vendor/**/*.php"
]
}
]
}
自从我在 "stopOnEntry":true"
上找到它后,我发现 pathMappings
设置不正确。是在抱怨 index.php
was not found(这个故障是后来的,第一个故障)。我认为最初的错误是 "xdebug.remote_connect_back=0"
被设置为一个 1
.
我还尝试激活自动午餐 chrome(就像它在 phpstorm 中工作一样),它启动 chrome 但由于某种原因它没有触发调试(不知道为什么) .我会对此进行更多调查。
我尝试在 windows 10 台机器上用可视化代码配置 Xdebug 和 Laradock。
我看到在使用 phpinfo();
时启用了 Xdebug 我得到了这些值:
Xdebug Version 2.9.8
xdebug.remote_host host.docker.internal
xdebug.remote_port 9000
我还在调试中的 Visual Code 中启用了这个配置:
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"log": true,
"stopOnEntry":true,
"pathMappings": {
"/var/www": "${workspaceRoot}/public",
},
"ignore": [
"**/vendor/**/*.php"
]
}
]
我测试了使用此命令启动 telnet:telnet 192.168.1.10 9000
以查看我是否可以连接到调试会话。
当我启动浏览器时,要让 php-fpm 连接回我的可视代码会话,我错过了什么?我需要发送密钥还是应该只是启动浏览器?
关于更多调试的任何建议我都可以找到请求卡住的地方?有 xdebug 的日志吗?
像这样更新 laradock\php-fpm\xdebug.ini 和 laradock\workspace\xdebug.ini 后,我开始工作了:
xdebug.remote_host=host.docker.internal
xdebug.remote_connect_back=0
xdebug.remote_port=9000
xdebug.idekey=VSCODE
xdebug.remote_autostart=0
xdebug.remote_enable=0
xdebug.cli_color=0
xdebug.profiler_enable=0
xdebug.profiler_output_dir="~/xdebug/phpstorm/tmp/profiling"
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1
我也修改了 .vscode\launch.json 这样:
{
// 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",
//"type": "pwa-chrome",
//"url": "http://127.0.0.1//posts/first",
"port": 9000,
"log": true,
"stopOnEntry":false,
"pathMappings": {
"/var/www": "I:\dev\project-z",
},
"ignore": [
"**/vendor/**/*.php"
]
}
]
}
自从我在 "stopOnEntry":true"
上找到它后,我发现 pathMappings
设置不正确。是在抱怨 index.php
was not found(这个故障是后来的,第一个故障)。我认为最初的错误是 "xdebug.remote_connect_back=0"
被设置为一个 1
.
我还尝试激活自动午餐 chrome(就像它在 phpstorm 中工作一样),它启动 chrome 但由于某种原因它没有触发调试(不知道为什么) .我会对此进行更多调查。