如何使用phpstorm和xdebug为symfony2设置远程调试

时间:2013-08-29 17:11:36

标签: debugging symfony phpstorm

问题:

  • 我希望能够调试我的symfony2项目。我想成为 能够在我的代码中设置一个断点,运行远程调试并且可以 能够在我交互时逐步浏览代码中的所有断点 我的申请。

背景信息和当前设置:

  • 我使用的IDE是phpstorm。

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

  • Xdebug安装在vmware播放器上。

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

到目前为止我做了什么

  • 我跟着the tutorial但没有运气。

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

  • 我还观看了一两个关于远程调试的网络研讨会,但我仍然不完全清楚我需要做什么才能完成我的代码。

问题:

  • 有人可以提供我需要做的一步一步的教程 设置远程调试,以便我可以启动一些远程调试 会话通过phpstorm将打开我的Web应用程序,因为我 在我的网络应用程序中导航我的断点会被击中吗?

2 个答案:

答案 0 :(得分:29)

我刚刚完成设置我的本地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扩展。在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个选项卡:Debugger和Console(默认选中)
  9. 将选项卡更改为调试器,您将看到:“正在等待使用ide键'PHPSTORM'的传入连接”
  10. 打开浏览器
  11. 导航至您的服务器网址
  12. 激活Xdebug帮助扩展(点击网址栏中的灰色错误)它将变为绿色
  13. 检查一切正常,打开Chrome控制台,标签资源 - > Cookies - >你的服务器。并验证创建了值为PHPSTORM的cookie XDEBUG_SESSION(这实际上是在php中激活xdebug远程调试)
  14. 现在刷新页面并快速alt-tab返回PhpStorm(或安排你的窗口以便在刷新浏览器时看到PhpStorm)
  15. 在Debug视图和Debugger控制台中,您将简要地看到“已连接”
  16. TADA!

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


    已添加5.1.2015

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

答案 1 :(得分:0)

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

Invalid path mappings

相关问题