【问题标题】:PhpStorm cannot start Xdebug (to work with Docker)PhpStorm 无法启动 Xdebug(与 Docker 一起工作)
【发布时间】:2017-02-08 15:34:09
【问题描述】:

我在 Ubuntu 16.04 上运行 PhpStorm 并尝试将 Xdebug 配置为与 Docker 一起使用。我遵循了这个指南:

Zero-configuration Web Application Debugging with Xdebug and PhpStorm

这是我做的步骤:

下载JetBrains提供的Docker Xdebug项目源码

编辑 Xdebug 远程主机:

配置 DBGp 代理(在 Language & Framework => PHP => Xdebug 下)如下:

编辑运行/调试配置

为 Docker 编辑 构建、执行、部署

启动 Docker

启用监听 Xdebug 连接

检查 Xdebug 信息

但不知何故,我无法启动 Xdebug 按钮(如上图所示)。

我做错了什么?

【问题讨论】:

  • 好吧..你已经启动了 Docker 容器。现在您需要启动您的 Web 应用程序并告诉 xdebug 您要调试它。这可以通过特定的 [bookmarklet](jetbrains.com/phpstorm/marklets) 或通过浏览器的 xdebug 扩展来完成——它们中的任何一个都会设置 xdebug cookie .. 所以当您重新加载页面时(或单击该页面上的任何其他链接/按钮因此它会加载其他 URL)它会将该 cookie 发送到 xdebug。
  • P.S.我不确定是否需要在 docker 中映射 9000 端口,因为它是 xdebug 连接到 PhpStorm 而不是其他方式。您还可以启用收集 xdebug 日志以查看 xdebug 方面的情况:xdebug.org/docs/all_settings#remote_log
  • 尝试将查询参数“XDEBUG_SESSION_START=PHPSTORM”添加到 URL 但不起作用。另外,我什至可以点击调试按钮。
  • 您不能单击调试按钮(根据您从上一个屏幕截图中的第二个),因为它仅用于启动 Docker(通常可以与任何技术一起使用:PHP、Ruby、Python、Java 等)。对于 PHP 调试,您可以创建和使用“Web App”类型的配置(在 Docker 启动后使用)或通过书签/扩展(如 PhpStorm 网站的原始手册建议)。
  • 您也可以只使用xdebug.remote_autostart = on 告诉xdebug 它需要调试每个请求(以防您无法通过xdebug cookie/query 参数使其工作)。

标签: phpstorm


【解决方案1】:

不知何故,docker 容器无法访问主机上的端口 9000。通过运行以下命令,我解决了问题:

# iptables -I INPUT -p tcp -m tcp --dport 9000 -j ACCEPT

【讨论】:

  • 谢谢,节省了我几个小时。 :) 我最终改用了 ufw -sudo ufw allow 9000/tcp comment 'xdebug'
猜你喜欢
  • 2011-11-15
  • 2018-04-27
  • 2019-09-03
  • 1970-01-01
  • 2015-01-25
  • 2022-08-08
  • 2022-01-09
  • 1970-01-01
  • 2020-10-10
相关资源
最近更新 更多