【问题标题】:How to trigger only my requests using Xdebug on remote server如何在远程服务器上使用 Xdebug 仅触发我的请求
【发布时间】:2019-06-27 14:57:31
【问题描述】:

我正在尝试调试远程服务器上的代码。

我正在使用

  • Ubuntu 16 服务器、LEMP、PHP 7.0 作为远程服务器
  • OSX、PhpStorm、Chrome Xdebug helper 作为本地环境

那么,当

  • Xdebug 连接是由建立的

    ssh -R 9000:localhost:9000 {username}@{serverhost}
    
  • 调试模式下的 Xdebug 助手

  • PhpStorm 开始监听已启用

Xdebug 触发每个请求,不仅来自我的浏览器或 PhpStorm,而且来自互联网上的所有其他用户。

正常吗?

是否可以仅查看从我的 PhpStorm 或我的 Chrome 请求发起的请求?如果是,那么如何设置?

【问题讨论】:

  • 确保您拥有xdebug.remote_autostart = 0
  • 是的,它是 1,但是当我将它切换到 0 时,xdebug 完全停止工作
  • 所以 .. 使用其他触发 Xdebug 的方法——cookie、GET/POST 参数、xdebug_break(); 在您的代码等中。
  • xdebug_break();
  • 什么意思?我做错了什么?

标签: phpstorm xdebug remote-debugging


【解决方案1】:

Xdebug 触发每个请求,不仅来自我的浏览器或 PhpStorm,而且来自互联网上的所有其他用户。

正常吗?

这取决于您的 Xdebug 配置。现在看起来它已配置为自动尝试调试每个请求(在许多情况下不是一个好主意)。

是否可以仅查看从我的 PhpStorm 或我的 Chrome 请求发起的请求?如果是,那么如何设置?

是的,请确保 xdebug.remote_autostart 已关闭(设置为 0/no)。

那么就按照官方指南:https://www.jetbrains.com/help/phpstorm/debugging-with-phpstorm-ultimate-guide.html

Xdebug 将看到 Chrome Xdebug Helper 设置的 Xdebug cookie(或 GET/POST 参数,如果您在 URL/请求中手动传递它),并会尝试仅调试这些请求。

附:在另一种情况下,上述选项无济于事。但到目前为止,您似乎没有遇到这种情况(需要查看更多详细信息)。

【讨论】:

    猜你喜欢
    • 2020-09-15
    • 2011-08-06
    • 2019-11-05
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    相关资源
    最近更新 更多