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

标签 debugging symfony phpstorm

问题:

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

  • 背景信息和当前设置:
  • 我正在使用的IDE是phpstorm。
  • Apache和mySql服务器在我的vmware播放器上运行。
  • Xdebug已安装在vmware player上。
  • 我目前通过vmware播放器ip连接到我的项目
    (即172.16.48.1/app_dev.php)。在这一点上,我与我的
    正常应用并发展。

  • 我到目前为止所做的事
  • 我关注了the tutorial,但没有任何运气。
  • 我对本教程的大部分内容确实感到困惑,但我会尽可能地遵循它。按照说明进行操作时,我认为小书签不能正常工作。
  • 我还观看了一个或两个关于远程调试的网络研讨会,但对我来说仍然不是很清楚,我需要做什么来逐步执行代码。

  • 问题:
  • 有人可以提供我需要做的分步教程吗
    设置远程调试,以便我可以启动一些远程调试
    通过phpstorm的 session ,这将打开我的Web应用程序,
    浏览我的Web应用程序,我的断点会被击中吗?
  • 最佳答案

    我刚刚完成了用Chrome设置本地symfony2应用和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 key 以指向PhpStorm。 (对于该特定 session ,这实际上会将xdebug.idekey设置为PHPSTORM)

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

    工具栏中的
  • ,在调试按钮旁边,您具有第一个选项Edit configuration的下拉字段。它打开Run/Debug Configurations
  • 在那里单击+按钮并添加PHP Remote Debug
  • 指定您的名称,服务器和Ide key = PHPSTORM
  • 单击“应用”,然后单击“确定”(我不知道哪一个,所以我总是同时单击两者,以防万一)
  • 现在,工具栏上的下拉列表将显示您新设置的远程服务器,运行按钮(绿色箭头)将被禁用。
  • 单击Start Listen for PHP Debug Connection
  • 单击该绿色错误图标以开始调试
  • 调试 View 将打开,其中有两个选项卡:调试器和控制台(默认选中)
  • 将选项卡更改为Debugger,您将看到:“等待使用ide键'PHPSTORM'进行传入连接”
  • 打开浏览器
  • 导航到您的服务器URL
  • 激活Xdebug帮助程序扩展(单击URL栏中的灰色错误),它将变为绿色
  • 以检查一切正常,请打开Chrome控制台,然后依次选择资源-> Cookies->您的服务器。并验证是否已创建具有值PHPSTORM的cookie XDEBUG_SESSION(这实际上是在php中激活xdebug远程调试的功能)
  • 现在刷新页面并快速alt-tab键回到PhpStorm(或安排您的窗口,以便您在刷新浏览器时可以看到PhpStorm)
  • 在“调试” View 和调试器控制台中的
  • ,您将简要地看到“已连接”的

  • TADA!

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

    添加了5.1.2015

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

    关于debugging - 如何使用phpstorm和xdebug为symfony2设置远程调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18517083/

    相关文章:

    phpstorm - 如何在 phpstorm 中使用 phalcon-devtools\ide\phpstorm?

    laravel - 在 Ubuntu 上使用 Sail 和 PhpStorm 在 Laravel 8 上运行 Xdebug

    java - 如何使用代理选项记录(调试)javaagent

    android - 当断点位于方法的第一行时,在 Android Studio 中看不到参数值

    c# - Debug.Print 与 Debug.WriteLine

    php - Symfony 4 : Login not working for token, 但适用于用户名和密码

    html - 从 Twig 模板生成 pdf 文件

    c++ - 如何打印正在使用 LLDB 调试的 C/C++ 函数的内存地址和参数值?

    php - 如何在 Symfony2 中创建基于 API 的 Web 服务

    phpstorm - 类存在多个定义