首页 > 解决方案 > 当 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 代码。

我进行了一些研究,但没有找到任何具体的说明来说明执行此操作所需的内容。这可能吗?

提前致谢。

标签: phpmacosapachexdebugngrok

解决方案


是的。您可以将 Xdebug 配置为始终尝试进行调试会话,而不是依赖浏览器的 GET/POST/COOKIE 参数。

您必须设置xdebug.remote_autostartyeshttps ://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()功能,可以告诉您它是如何配置的,以及它尝试连接的对象(如果有的话)。


推荐阅读