Kev*_*erg 8 php debugging xdebug vagrant sublimetext3
我在运行Ubuntu的本地Vagrant实例上设置了Xdebug.它按预期工作,我可以在我的应用程序中设置断点.
我有一个场景,应用程序向内部API发出请求.内部API位于同一服务器和相同的代码库中.
树例证
codebase/
app/
root
api/
root
Run Code Online (Sandbox Code Playgroud)
该应用程序可通过https://local.myapplication.com访问,API可在本地访问,如http://local.api.myapplication.com).
如果我现在在API的某些代码中设置断点,然后访问https://local.myapplication.com/some/action/that/triggers/the/api/code,只有在我不初始化Xdebug时才会触发断点第一个应用程序的会话,即我没有设置XDEBUG_SESSION_START
查询参数.如果已设置,则忽略我的断点.
这有一定的缺点.如果我在应用程序和API中有断点,那么我现在无法触发这两个断点.我可以触发应用程序断点或API断点.
我正在使用Sublime Text 3和插件https://github.com/martomo/SublimeTextXdebug.我的Xdebug设置php.ini
是:
zend_extension="/usr/lib/php5/20090626/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=192.168.3.1
xdebug.remote_port=9000
xdebug.remote_log="/tmp/php5-xdebug.log"
Run Code Online (Sandbox Code Playgroud)
这可以解决吗?任何答案/评论表示赞赏!
两个选择。如果第一个(更简单)不起作用,那么第二个肯定会起作用。
在 php.ini 中,将以下内容添加到 xdebug 设置中:
xdebug.remote_autostart = 1
Run Code Online (Sandbox Code Playgroud)
请参阅此处的文档
您需要有两个单独的 IDE/文本编辑器实例来侦听 xdebug - 每个实例位于不同的端口上。您可以将两个实例设置为编辑同一项目,同时它们的 xdebug 服务侦听不同的端口。
例如:
要使您的“内部 API”在端口 9001 上运行 xdebug,您只需在“内部 API”脚本的开头执行以下操作:
ini_set('xdebug.remote_port', '9001');
Run Code Online (Sandbox Code Playgroud)