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

2024-01-12

Problem:

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

背景信息和当前设置:

  • 我使用的IDE是phpstorm。

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

  • Xdebug 安装在 vmware 播放器上。

  • 我目前通过我的 vmware 播放器 IP 连接到我的项目 (即 172.16.48.1/app_dev.php)。此时我与我的互动 正常应用并开发。

到目前为止我做了什么

  • 我跟着教程 http://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm但没有任何运气。

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

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

问题:

  • 有人可以提供我需要做什么的分步教程吗 设置远程调试,以便我可以启动一些远程调试 通过 phpstorm 的会话将打开我的网络应用程序,当我 浏览我的网络应用程序时我的断点会被击中吗?

我刚刚使用 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 https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc

3) 设置 xdebug 扩展。在 chrome://extensions 中找到 Xdebug helper 并单击选项。在那里选择 PhpStorm 的 IDE 密钥。 (这实际上会将特定会话的 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. click Start Listen for PHP Debug Connection
  7. 单击绿色错误图标开始调试
  8. 调试视图将打开并包含 2 个选项卡:调试器和控制台(默认选择)
  9. 将选项卡更改为“调试器”,您将看到:“正在等待使用 ide 键‘PHPSTORM’的传入连接”
  10. 打开你的浏览器
  11. 导航到您的服务器网址
  12. 激活 Xdebug 帮助程序扩展(单击网址栏中的灰色错误)它将变成绿色
  13. 要检查一切是否正常,请打开 Chrome 控制台,选择“资源”->“Cookie”->“您的服务器”。并验证是否创建了值为 PHPSTORM 的 cookie XDEBUG_SESSION (这实际上是在 php 中激活 xdebug 远程调试)
  14. 现在刷新页面并快速按 alt-tab 返回 PhpStorm(或排列窗口,以便在刷新浏览器时可以看到 PhpStorm)
  15. 在调试视图和调试器控制台中,您将短暂看到“已连接”

TADA!

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


添加于2015年1月5日

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 phpstorm 和 xdebug 为 symfony2 设置远程调试 的相关文章

  • 多线程调试技术

    我想知道是否有人知道多线程应用程序调试技术的一个很好的调查 理想情况下 我正在寻找基于案例的分析 死锁 饥饿 损坏的共享状态 Net 特定的或通用的 我不知道有哪篇文章或书籍可以满足您的需求 因此这是我从 12 年 Windows 多线程调
  • Twig:渲染与包含

    我正在创建一个在线商店 如果我使用树枝函数 渲染 而不是 包含 我会遇到性能问题 以下是显示产品目录的代码 目录控制器
  • 获取局部变量

    当从已部署的应用程序获取堆栈跟踪作为错误报告时 获取实际变量值以重建抛出异常之前的系统状态也会很有帮助 类似的事情在 Java 中可行吗 如何才能做到这一点 干杯 最大限度 我很确定您无法获取堆栈跟踪中的局部变量 因为输出是从 StackT
  • Monolog:通过邮件发送错误日志会导致每个发送的错误都会收到一封额外的邮件

    对于通过邮件发送的每个错误日志 我们都会收到另一封额外的电子邮件 其中包含 2 行 smtp 调试日志消息 新创建的 symfony 演示 symfony new demo 配置独白以通过邮件发送错误消息 如docs https symfo
  • 不知从何而来的用户断点

    我正在调试 MS VC 6 0 中的一些代码 出于某种原因 在我试图删除一些动态分配的内存的某个时刻 它崩溃了 我收到一个弹出消息框 上面写着 从代码中调用的用户断点等等 然后弹出 反汇编 窗口 我看 memory address int
  • Chrome 中的 V8 原生语法

    Nodejs 有特殊标志 allow natives syntax 是否可以将这样的东西传递给 Google Chrome 或者也许开发工具提供了其他方式来访问此类信息 running node with allow natives syn
  • Eclipse 在单独的窗口中打开代码

    我正在 eclipse 中编程 在两个显示器设置上运行 在其中一台显示器上 我只获得了项目资源管理器和编辑器作为自定义透视图 而在另一台显示器上 我获得了其他工具 例如控制台 调试 任务 变量 断点等 例如 当我单击任务视图中的任务时 这将
  • 如何通过 API 平台使用“paramconverter”?

    如何通过 Symfony API 平台实现或使用 paramconverter 我想在路线上使用实体 ID 并立即生成一个对象 准备在控制器中使用 我没有在这个项目上使用注释 路由配置位于 YAML 文件中 resources App Me
  • pydev 断点不起作用

    我正在使用 python 2 7 2 sqlalchemy 0 7 unittest eclipse 3 7 2 和 pydev 2 4 开发一个项目 我在 python 文件 单元测 试文件 中设置断点 但它们被完全忽略 之前 在某些时候
  • 使用 IntelliJ 调试 Java 进程 - 连接到套接字但不连接到目标 VM

    现在已解决 请参阅问题末尾 我正在尝试使用 IntelliJ Community Edition 的调试器来调试 Java 进程 套接字正在侦听 但是当我尝试连接时 调试过程显示以下内容 连接到目标虚拟机 地址 8003 传输 socket
  • 如何将参数传递给 Symfony2 中的验证约束 - 在 yml 中

    我正在尝试向我的应用程序添加一个包范围的参数 以便我可以将其添加到我的验证约束文件 validation yml 中 myApp myBundle Entity Contact properties name NotBlank messag
  • Brunch 源映射:在 Chrome 开发工具中未命中断点

    我正在使用 Brunch 中内置的默认源映射 我看到文件很好 但无法在源映射文件中命中断点 使用 Javascript 访问调试器debugger 有效 这让我相信早午餐方面出了问题 这是我的 brunch config js module
  • Android SQLite 从代码中转储数据库以进行错误报告

    我正在为我的一个 Android 程序开发一种诊断工具 本质上 如果用户遇到问题 我想做一些类似 SQLite 的事情dump 参考 http www sqlite org sqlite html http www sqlite org s
  • 如何将变量的全部内容发送/导出到文本文件/xml 文件/剪贴板?

    我想将实例的内容 最好以树形形式 发送给某人 打印屏幕是不行的 因为类太复杂了 您需要将输出转回实例吗 在这种情况下 其他答案都是正确的 如果您只想手动检查实例的内容 理想情况下您的类都将实现toString 你可以将其重定向到一个文件 如
  • Symfony2 - 在自定义验证器中调用 EmailValidator

    我正在创建一个自定义验证器约束来验证 联系人 类似于 John Doe 电子邮件受保护 gt 遵循Cookbook http symfony com doc current cookbook validation custom constr
  • 使用 yaml 路由描述时如何在运行时获取 Symfony2 中的路由名称?

    在这里你可以找到我的n关于 Symfony2 的第一个问题 我正在与一个分页捆绑 https github com makerlabs PagerBundle wiki使用中提供的路由名称routing yml文件 从我的角度来看 这种方法
  • 更改 Symfony2 中的默认语言环境

    我正在尝试更改应用程序的默认区域设置 到目前为止我尝试过的事情 将 intl default locale 设置为 et EE 将区域设置设置为 et app config parameters ini 更改了我的捆绑包 boot 方法中描
  • VS2017调试错误:评估函数超时,需要中止...

    当我调试代码时 我经常在 Visual Studio 2017 中看到此弹出窗口 这使我无法评估对象 我单击 帮助 按钮并阅读说明要做什么 但是他们建议的选项都没有 这基本上是禁用所有属性评估 这使得调试毫无用处 因为我确实想查看对象或集合
  • PhpStorm 生成构造函数参数功能的快捷方式

    PhpStorm 中是否有生成代码的快捷方式 model2与 一样 model1 class Test private model1 public function construct string model1 model2 this g
  • 是什么阻止密码被注入的 Symfony 服务 (FOSUserBundle) 重新哈希

    这是我的后续问题原问题 https stackoverflow com questions 36681622 how to access the user token in an injected service to reencode p

随机推荐

  • 如何让两个物体碰撞后粘在一起?

    我真的很困惑 我可以成功检测到碰撞 但我无法使参与碰撞的两个物体粘在一起 这是我的联系监听器 world setContactListener listener listener new ContactListener Override p
  • 获取 Android 通知以横幅形式显示

    我相当广泛地研究了各种术语 横幅 弹出 通知类型 但我似乎无法清楚地了解我 认为 的一个非常常见的问题 因此 如果由于缺乏术语而导致我错过了一个非常明显的解决方案 请提出建议 问题是这样的 我希望 Android 通知显示为从屏幕顶部掉落的
  • 如何自动填充 SQLAlchemy 数据库字段? (Flask-SQLAlchemy)

    我有一个简单的用户模型 定义如下 models py from datetime import datetime from myapp import db class User db Model id db Column db Intege
  • 在 Cakephp 中使用 $this->Auth 获取关联模型

    我正在使用 CakePHP 2 0 的集成 Auth 组件 我有以下表格 Users Groups Profiles 我的模型关系如下 User belongsTo Group User hasMany Profiles 登录该站点时 我注
  • 删除级联时是否有“反向”选项?

    假设我在 SQL Server 中有以下数据库 CREATE TABLE Order ID BIGINT IDENTITY 1 1 CONSTRAINT PK Order PRIMARY KEY CLUSTERED ID CREATE TA
  • 回收时注销

    在生产环境中 我有一个 IIS 托管的 ASP NET 应用程序 实际上是许多 Web 应用程序 每个应用程序都会消耗大量内存 但目前限制它的唯一方法是回收 nHibernate 似乎正在泄漏内存 并且它正在创建大量字符串集合 问题是 在回
  • 在 hashmap android 中添加 Arraylist> 中的值

    我必须获取数据列表 所以我使用了字符串的数组列表和列表 这里如何在地图上添加值 我使用了下面的代码 static final String KEY TITLE Category static final String KEY ARTICLE
  • 对 Angular2 中的对象数组进行排序

    我在 Angular2 中对对象数组进行排序时遇到问题 该对象看起来像 name t10 ts 1476778297100 value 32 339264 xid DP 049908 name t17 ts 1476778341100 va
  • ZF2 - 需要在特定条件失败时显示特定错误消息

    我正在使用 ZF2 表单验证 我必须验证两个字段 用户名 和 密码 一切正常 但我收到类似的消息 Please enter username Username can not be less than 3 characters Please
  • 在 Eclipse 启动时禁用插件

    我刚刚为 Eclipse 安装了一个插件 但结果 Eclipse 将不再启动 它说 有一个错误 或一些此类无信息的消息 如何在不加载插件的情况下启动 Eclipse 以便我可以实际卸载有问题的软件 正如另一个人提到的 您可以尝试 clean
  • 处理 R 中冲突的命名空间(不同包中的相同函数名称):重置包命名空间的优先级

    不同包的命名空间之间的名称冲突R可能是危险的 并且使用package function不幸的是没有普遍化R 是否有一个函数可以重置包命名空间相对于当前加载的所有其他命名空间的优先级 我们当然可以detach然后重新加载包 但是没有其他更实用
  • 如何使用 Google App Engine 重定向所有 URL

    我该如何配置app yaml文件将所有 URL 重定向到另一个 URL 例如我想要http example appspot com hello or http example appspot com hello28928723重定向到htt
  • 有 CSS 父选择器吗?

    我该如何选择 li 是锚元素的直接父元素吗 举个例子 我的 CSS 应该是这样的 li lt a active property value 显然 有多种方法可以使用 JavaScript 实现此目的 但我希望 CSS Level 2 本身
  • 使用 terraform 获取金库秘密值

    我正在使用带有 consul 的保管库服务器作为存储后端 并尝试使用 terraform 中的保管库提供程序获取密码值 但它并没有获得它的价值 我将我的秘密存储在位置秘密 实例中 main tf provider vault address
  • 如何加速 Mongodump,转储未完成

    在尝试使用来自大约 50 亿个数据库的查询来运行数据库转储时 进度条时间似乎表明此转储不会在任何合理的时间 100 多天 内完成 大约 22 小时后 查询似乎以 0 结束后也冻结了 之后的行是metadata json 行 转储行是 mon
  • 复制同名属性的简单代码?

    我有一个old这个问题在我脑海里停留了很长时间 当我在 Spring 中编写代码时 有很多 DTO 域对象的脏代码和无用代码 对于语言级别 我对 Java 毫无希望 但在 Kotlin 中看到了一些曙光 这是我的问题 Style 1我们通常
  • 在 pyqt4 中旋转像素图会产生不需要的翻译

    我正在尝试编写一个简单的应用程序 在按下按钮时旋转 png 图像 我一切正常 只是当图像旋转时 它偏离了东南方向的中心 我本以为它不是绕着中心旋转 但每旋转 45 度它就会回到原点 这很奇怪 对于一个关键事件 我只是简单地调用 pixmap
  • 堆叠 LSTM 网络中每个 LSTM 层的输入是什么?

    我在理解堆叠 LSTM 网络中各层的输入输出流时遇到一些困难 假设我创建了一个如下所示的堆叠 LSTM 网络 parameters time steps 10 features 2 input shape time steps featur
  • 如果指令具有独立的作用域,为什么 ng-transinclude 的作用域不是其指令作用域的子级?

    给定一个指令 container1 具有嵌入和隔离作用域 当链接指令时 我有这些作用域 Scope 004 lt scope of the body Scope 005 lt scope of directive container1 Sc
  • 如何使用 phpstorm 和 xdebug 为 symfony2 设置远程调试

    Problem 我希望能够调试我的 symfony2 项目 我想成为 能够在我的代码中设置断点 运行远程调试并 能够在交互时单步执行代码中的所有断点 与我的申请 背景信息和当前设置 我使用的IDE是phpstorm Apache 和 myS