php - 使用 SSH 连接编辑代码时使用 Xdebug 进行 VSCode 远程调试
问题描述
pathMappings
当我使用 VSCode 远程资源管理器 SSH 插件从 Windows 机器上打开 Linux 网络服务器上的远程目录时,不确定如何在 VSCode 调试配置中进行配置。如果我在本地存储源的副本并使用本地源启动 VSCode,则调试工作正常。
Web 服务器是 Ubuntu 14 Lamp,本地系统是 Windows 10。使用 VSCode 中的远程资源管理器插件从 Windows 工作站 ssh 到 Linux 服务器并在服务器上编辑源代码。
当我在本地存储源文件并通过打开本地副本启动 VSCode 时,这在 VSCode 调试配置中工作正常。
pathMappings": {
"/var/www/html/codeigniter/": "${workspaceRoot}",
},
当我使用远程资源管理器在 Windows 上启动 VSCode 时,此配置不起作用。我通过远程资源管理器连接到这个根文件夹/var/www/html/codeigniter/
当我通过 VSCode 的 SSH 插件打开 Linux 服务器上的文件时,我希望能够识别断点并停止代码,但它们不是,并且代码运行时不会遇到断点。
解决方案
谢谢回复。我想避免拥有我的代码副本,以便在调试时进行编辑。我确实最终让事情正常了。所以我可以使用 VSCODE ssh 连接,然后在服务器上调试和编辑源代码,而无需制作本地副本。
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000
在我的 linux 服务器上我的 xdebug 设置
xdebug.remote_handler=dbgp
xdebug.remote_log="/tmp/xdebug/log"
xdebug.profiler_enable = 1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_autostart = 1
xdebug.remote_host = 127.0.0.1
我必须将 remote_host 设置为本地主机,然后一切正常。我对 xdebug 的理解不够,无法意识到即使 IDE 调试器在同一台主机上运行,也需要设置 remote_host。我对 vscode 的了解还不够,无法意识到在 SSH 远程编辑模式下,调试组件实际上安装在远程服务器上,使其成为 xdebug 和远程主机之间的 localhost 连接。
无论如何,问题解决了。感谢您的回答,这对我的道路有所帮助。
推荐阅读
- node.js - 当前的 URL 字符串解析器已弃用
- javascript - 字符串拆分数组中的不一致导致 IE 11
- javascript - 带有千位分隔符的html输入类型编号
- python - 来自 django 应用程序的语言环境不会改变
- c# - 在 C# 中为数据库设置条件,确保列中的日期不应等于 html 表单中的选择
- python - VSCode 的 vscode-python 扩展是语言服务还是只是扩展?
- php - slim 框架中的 Container->get('route') 方法
- php - 带有消息“无效数据源名称”的未捕获异常“PDOException”
- c# - 如何让策略模式中的一种策略返回多个值
- javascript - Trumbowyg:Django 服务器可以检测文件上传但不能检测图像 URL 输入