【问题标题】:How to set up remote debugging for symfony2 with phpstorm and xdebug如何使用 phpstorm 和 xdebug 为 symfony2 设置远程调试
【发布时间】:2013-08-29 17:11:36
【问题描述】:

问题:

  • 我希望能够调试我的 symfony2 项目。我想成为 能够在我的代码中设置断点,运行远程调试并成为 能够在我交互时单步执行我的代码中的所有断点 与我的应用程序。

背景信息和当前设置:

  • 我使用的 IDE 是 phpstorm。

  • Apache 和 mySql 服务器正在我的 vmware 播放器上运行。

  • Xdebug 安装在 vmware 播放器上。

  • 我目前通过我的 vmware 播放器 ip 连接到我的项目 (即 172.16.48.1/app_dev.php)。在这一点上,我与我的互动 应用正常并发展。

到目前为止我做了什么

  • 我关注了the tutorial,但运气不佳。

  • 我对本教程的大部分内容感到困惑,但我尽可能地遵循它。按照说明操作时,我认为小书签无法正常工作。

  • 我还观看了一两次关于远程调试的网络研讨会,但我仍然不完全清楚我需要做什么来逐步执行我的代码。

问题:

  • 谁能提供我需要做什么的分步教程 设置远程调试,以便我可以启动一些远程调试 通过 phpstorm 进行会话,这将打开我的 Web 应用程序,并且当我 浏览我的 Web 应用程序会遇到断点吗?

【问题讨论】:

  • 我会看这个,看看它是否对我有帮助。如果有的话,它将帮助我为其他人提出一个更明智的问题,以帮助我理解我做错了什么。
  • 这篇文章(也应该包含在该视频中):confluence.jetbrains.com/display/PhpStorm/…
  • 我试图按照您提供的链接进行操作,但仍然无法正常工作。当我按照有关如何使用它们的说明进行操作时,教程中的 bookmarketlets 似乎什么也没做。
  • 嗯......我能说什么。我不知道你到底做了什么。如果调试实际上安装和配置正确(我不知道你的经验;我看到很多人声称“所有设置都正确”,但它看起来相反); IDE 也一样。原因很简单——您没有提供任何相关信息。我建议您在 PhpStorm 论坛上创建更适合此类案例/讨论的新主题:devnet.jetbrains.com/community/wi?view=discussions

标签: debugging symfony phpstorm


【解决方案1】:

我刚刚完成了本地 symfony2 应用程序的设置和使用 Chrome 进行 phpstorm 调试,这是我所做的:

1) 在服务器上的 php.ini 中配置 xdebug 并重启 web 服务器(或 php-fpm):

[xdebug]
zend_extension="**location to xdebug**/xdebug.so"
xdebug.remote_enable = 1
; use port 9009 because php-fpm uses 9000 by default
xdebug.remote_port = 9009
xdebug.idekey = PHPSTORM

2) 安装 xdebug 扩展 https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc

3) 设置 xdebug exteions。在 chrome://extensions 中找到 Xdebug 助手并单击选项。在那里选择 IDE 键到 PhpStorm。 (这实际上会将 xdebug.idekey 设置为特定会话的 PHPSTORM)

4) 现在是最棘手的部分,从 PhpStorm 连接。 您必须设置PHP Remote Debug 调试配置。

  1. 在工具栏中,在调试按钮旁边,您有带有第一个选项Edit configuration 的下拉字段。它打开Run/Debug Configurations
  2. 点击+按钮并添加PHP Remote Debug
  3. 指定您的姓名、服务器和Ide key = PHPSTORM
  4. 点击应用和确定(我不知道是哪一个,所以我总是点击两者,以防万一)
  5. 现在工具栏中的下拉菜单将显示您新设置的远程服务器,运行按钮(绿色箭头)将被禁用。
  6. 点击Start Listen for PHP Debug Connection
  7. 点击那个绿色的错误图标开始调试
  8. 调试视图将打开,其中包含 2 个选项卡:调试器和控制台(默认选中)
  9. 将选项卡更改为 Debugger,您将看到:“Waiting for incoming connection with the ide key 'PHPSTORM'”
  10. 打开浏览器
  11. 导航到您的服务器网址
  12. 激活 Xdebug 辅助扩展(点击 url 栏中那个灰色的 bug)它会变成绿色
  13. 要检查一切是否正常,请打开 Chrome 控制台,选项卡资源 -> Cookies -> 您的服务器。并验证是否创建了值为 PHPSTORM 的 cookie XDEBUG_SESSION(这实际上是在 php 中激活 xdebug 远程调试)
  14. 现在刷新页面并快速 alt-tab 返回 PhpStorm(或安排您的窗口,以便在刷新浏览器时可以看到 PhpStorm)
  15. 在您的调试视图和调试器控制台中,您将短暂看到“已连接”

多田!

在控制器中创建几个断点(不要使用 AppKernel.php 或其他 symfony2 特定文件,因为它们会被编译并且不会被调用,即使在开发模式下也是如此)


添加 5.1.2015

官方教程可以在这里找到: https://confluence.jetbrains.com/display/PhpStorm/Profiling+PHP+applications+with+PhpStorm+and+Xdebug

【讨论】:

    【解决方案2】:

    一切正常,直到我设置断点为止。由于 Symfony2 是一个前端控制器,它不知道哪个对应的文件与断点匹配。 我尝试设置路径映射,但无济于事。

    【讨论】:

    猜你喜欢
    • 2014-12-03
    • 2014-01-16
    • 2011-11-06
    • 2016-12-30
    • 2015-07-04
    • 2015-07-04
    • 2018-07-12
    • 2011-08-31
    • 1970-01-01
    相关资源
    最近更新 更多