当 webhook 调用通过 MacOS 上的 ngrok 到达时如何让 Xdebug 连接
Posted
技术标签:
【中文标题】当 webhook 调用通过 MacOS 上的 ngrok 到达时如何让 Xdebug 连接【英文标题】:How to get Xdebug to connect when webhook call arrives via ngrok on MacOS 【发布时间】:2021-10-26 18:02:52 【问题描述】:我目前在 MacOS 10.14.6 上运行 Apache 2.4、php 7.2 和 Xdebug 2.9
目前我只能在我的 mac 上运行的浏览器中输入一个 URL 时使用 Xdebug,该浏览器由运行在同一台上的 Apache 处理。
当 webhook 调用通过 ngrok 隧道到达我的 Mac 并由 Apache 处理时,我希望能够使用 Xdebug 单步执行 PHP 代码。
我进行了一些研究,但没有找到任何具体的信息来说明执行此操作所需的内容。这可能吗?
提前致谢。
【问题讨论】:
【参考方案1】:是的。您可以将 Xdebug 配置为始终尝试进行调试会话,而不是依赖浏览器的 GET/POST/COOKIE 参数。
您必须将xdebug.remote_autostart
设置为yes
:https://2.xdebug.org/docs/all_settings#remote_autostart
您还需要将 xdebug.remote_host
设置为运行 IDE 的机器的 IP 地址(可能与运行 ngrok 的机器相同,我将 猜 >,只是本地主机)。所以设置:xdebug.remote_host=localhost
.
请注意,不再支持 Xdebug 2,我们建议您升级到 Xdebug 3。那里的配置名称将改为xdebug.start_with_request=yes
和xdebug.client_host=localhost
(请参阅Upgrade Guide)。
Xdebug 3 还有一个新的xdebug_info()
函数,可以告诉您它是如何配置的,以及它尝试连接的对象(如果有的话)。
【讨论】:
感谢您的回复德里克。我将设置 remote_autostart 并查看它是否有效。我意识到 Xdebug 3 现在是最新的,但需要将我的旧环境保留一段时间。将尽可能升级。以上是关于当 webhook 调用通过 MacOS 上的 ngrok 到达时如何让 Xdebug 连接的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Discord (webhook) 上的嵌入消息中读取特定文本
Facebook API页面提要没有向我的webhook发送信息?