php - 当 webhook 调用通过 MacOS 上的 ngrok 到达时如何让 Xdebug 连接
问题描述
我目前在 MacOS 10.14.6 上运行 Apache 2.4、PHP 7.2 和 Xdebug 2.9
目前,当我将 URL 输入到我的 mac 上运行的浏览器中时,我只能使用 Xdebug,该浏览器由运行在同一台上的 Apache 处理。
当 webhook 调用通过 ngrok 隧道到达我的 Mac 并由 Apache 处理时,我希望能够使用 Xdebug 单步执行 PHP 代码。
我进行了一些研究,但没有找到任何具体的说明来说明执行此操作所需的内容。这可能吗?
提前致谢。
解决方案
是的。您可以将 Xdebug 配置为始终尝试进行调试会话,而不是依赖浏览器的 GET/POST/COOKIE 参数。
您必须设置xdebug.remote_autostart
为yes
:https ://2.xdebug.org/docs/all_settings#remote_autostart
您还需要设置xdebug.remote_host
运行 IDE 的机器的 IP 地址(可能与运行 ngrok 的机器相同,我猜它只是 localhost)。所以设置:xdebug.remote_host=localhost
。
请注意,不再支持 Xdebug 2,建议您升级到 Xdebug 3。那里是配置名称xdebug.start_with_request=yes
,而xdebug.client_host=localhost
不是(请参阅升级指南)。
Xdebug 3 还有一个新xdebug_info()
功能,可以告诉您它是如何配置的,以及它尝试连接的对象(如果有的话)。
推荐阅读
- javascript - Rails 使用方法从一个 js 文件到另一个 js 文件
- sql - sp_msforeachtable 不可用:获取表名 + min(value) + max(value)
- python - 将列表的数据与其最后一个值配对
- javascript - 将依赖注入 Vuex 模块
- flutter - 如何使用 charts_flutter 包在 Flutter 中显示工具提示
- redhat - 如何在 Redhat 的 3scale 中将门户工件从一个环境移动到另一个环境
- node.js - 如何保存数组?
- javascript - 为什么我必须在反应上下文对象中创建空函数?
- javascript - 单击浏览器后退按钮时网页中的 Jquery 元素未加载到网页上
- jenkins - 从 jenkins 中的 sh 文件设置环境,并在构建的其余部分保留它