如何通过CURL在Vagrant的SSH中触发Xdebug?

时间:2017-09-10 11:59:15

标签: curl ssh vagrant xdebug homestead

所以我有一个Vagrant驱动的实例,运行两个项目,并且所有工作都在游泳。我的项目有一个服务器实例和一个客户端实例。他们通过REST进行交流......一切都很顺利。

所以,我正确设置了Xdebug - 我知道这一点,因为如果我使用来自外部 Homestead的CLI cURL调用我的Laravel Client实例,传递?XDEBUG_SESSION_START = vagrant,它会在PhpStorm中选择它我可以正常调试:

curl -v http://clientproject.dev?XDEBUG_SESSION_START=vagrant

现在,如果我在Homestead的CLI中进行 完全相同的呼叫 (即我已经进入了Vagrant的SSH)框,并运行如上所示的curl命令),它不会触发。这对我没有意义

我在没有太多欢乐的情况下搜遍了网络,我希望你们这些优秀的公民能够遇到这个问题吗?

我真的很想这样,这样我就可以让我的服务器实例使用XDEBUG cookie调用我的客户端实例,这样在开发过程中,它可以让我的开发人员更轻松地进行调试。

1 个答案:

答案 0 :(得分:2)

好的,在深入了解并了解Xdebug如何工作之后,我意识到它无法正常工作,因为要使Xdebug工作,原始调用必须在与IDE相同的机器上进行。

因为我在Homestead VM中进行了CURL调用,所以XDebug一直在回到IDE。

要纠正此问题,您必须在curl调用中设置标题,如下所示:

curl -v http://myclient.dev?XDEBUG_SESSION_START=vagrant --header "X-Forwarded-For: 192.168.10.01"

当然, 192.168.10.01 是Vagrant主机的IP,即我的IDE所在的位置。

现在全部工作!