Php 使用Xdebug共享相同代码库的两个应用程序中的断点

Php 使用Xdebug共享相同代码库的两个应用程序中的断点,php,debugging,vagrant,xdebug,sublimetext3,Php,Debugging,Vagrant,Xdebug,Sublimetext3,我已经在运行Ubuntu的本地Vagrant实例上进行了设置。它按预期工作,我可以在应用程序中设置断点 我有一个应用程序向内部API发出请求的场景。内部API位于相同的服务器和相同的代码库上 树插图 codebase/ app/ root api/ root 应用程序可作为访问,API可作为本地访问) 如果我现在在一些API代码中设置断点,然后访问,那么只有在我没有为第一个应用程序初始化Xdebug会话时才会触发断点,即,我没有设置Xdebug\u session\u

我已经在运行Ubuntu的本地Vagrant实例上进行了设置。它按预期工作,我可以在应用程序中设置断点

我有一个应用程序向内部API发出请求的场景。内部API位于相同的服务器和相同的代码库上

树插图

codebase/
  app/
    root
  api/
    root
应用程序可作为访问,API可作为本地访问)

如果我现在在一些API代码中设置断点,然后访问,那么只有在我没有为第一个应用程序初始化Xdebug会话时才会触发断点,即,我没有设置
Xdebug\u session\u START
查询参数。如果设置了,则忽略我的断点

这有一定的缺点。如果我在应用程序和API中有一个断点,我现在就不能同时触发这两个断点。我可以触发应用程序断点或API断点

我正在使用插件。
php.ini
中我的Xdebug设置是:

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"
这能修好吗?如有任何答案/意见,敬请谅解

使用。您可以使它们依赖于任何PHP代码。例如,为每个入口点设置一个常数并进行检查。或者检查请求URL。

两个选择。如果第一个(更简单的)不起作用,第二个肯定会起作用

1-为每个http请求启动一个新的Xdebug会话。 在php.ini中,将以下内容添加到xdebug设置中:

xdebug.remote_autostart = 1

2-同时运行两个Xdebug会话。 您需要有两个单独的IDE/文本编辑器实例来监听xdebug,每个实例位于不同的端口上。您可以将两个实例设置为在其xdebug服务侦听不同端口时编辑同一项目

例如:

  • 您的“应用程序”->端口9000
  • 您的“内部API”->端口9001
要使“内部API”在端口9001上运行xdebug,只需在“内部API”脚本开始时执行以下操作:

ini_set('xdebug.remote_port', '9001');