PHP Netbeans 断点仅针对来自调试会话启动的浏览器的请求命中

PHP Netbeans breakpoints only hit for requests from debug session initiated browser

我正在调试一个 PHP codeigniter 项目,其中有一个控制器方法可以读取 php://input 并从中获取数据。我在那里放了一个断点,如果我通过浏览器请求该方法(由 netbeans 调试启动),它将成功命中。我有另一个 JAVA 应用程序将数据发送到相同的方法。我需要的是捕捉它。但是 netbeans 断点不会被 java 应用程序发起的请求击中。无论如何我可以做到这一点吗?提前致谢。

zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_mode = "req"
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9000
xdebug.trace_output_dir = "C:\xampp\tmp"

经过一些研究和调整后,我能够配置它。首先你需要添加

xdebug.remote_autostart = 1
xdebug.idekey = "netbeans-xdebug"

至 php.ini 以在没有 XDEBUG_SESSION_START=netbeans-xdebug 的情况下自动启动调试会话,并且 Netbeans 仅在默认情况下收听上述 ide 键。

然后您应该在项目属性 -> 运行 配置 -> 高级中启用不要打开 Web 浏览器。我不需要路径映射(我启用了将文件复制到服务器的选项)。现在断点应该命中任何来源发起的请求(对我来说,Firefox,Chrome 和我的 Java 应用程序)。

参考:

Whosebug Question

Xdebug docs