gpt4 book ai didi

phpstorm - 如何让 xdebug/step-debugging 与 ddev 一起工作?

转载 作者:行者123 更新时间:2023-12-01 14:17:49 28 4
gpt4 key购买 nike

我一直在使用 ddev 处理我的 Drupal 项目,现在想使用 xdebug,所以我可以使用 PhpStorm(或者任何 IDE 都可以)进行逐步调试。但我似乎无法让它在断点处停止。我试着关注 instructions in ddev docs但这并不能让我继续前进,我不知道下一步该怎么做。我做了:

  • 按照那里的讨论设置 172.28.99.99 IP 地址
  • 使用 config.yaml 启用 xdebug xdebug_enabled: trueddev start (并检查 phpinfo 以查看 xdebug 是否已启用。)
  • 将 PHPStorm 置于“监听调试连接”模式
  • 最佳答案

    在任何设置中调试 xdebug 都可能有点麻烦,但这里是要采取的步骤:

  • 首先,重读docs .
  • 确保您拥有 2019+ 版本的 PHPStorm。 2018.3 和(包括?)2018.3 之前的许多 PHPStorm 版本与较新的 XDebug 版本不兼容。
  • 确保 xdebug 已启用;出于性能原因,默认情况下它是禁用的。大多数人使用 ddev exec enable_xdebug在他们需要时启用它,以及 ddev exec disable_xdebug当他们完成它时,但它也可以在 .ddev/config.yaml 中启用.
  • 不要假设正在执行一些晦涩的代码并在那里放置断点。首先在 index.php 的第一个可执行行上放置一个断点。哦,很多时候人们认为它应该停止,但他们的代码没有被执行。
  • ddev ssh进入网络容器。你能不能ping host.docker.internal (并得到回应)?如果你不能,你可能有一个过于激进的防火墙。
  • 在 PHPStorm 中,禁用“监听连接”按钮,这样它就不会监听。或者直接退出 PHPStorm。
  • ddev ssh : jar 头telnet host.docker.internal 9000连接?如果是这样,那么您在端口 9000 上运行了其他东西,可能是 php-fpm。使用 lsof -i :9000 -sTCP:LISTEN找出那里有什么并阻止它,或 change the xdebug port and configure PHPStorm to use the new one .在您的 telnet 命令无法连接之前不要继续。
  • 现在单击 PHPStorm 上的监听按钮开始监听连接。
  • ddev ssh并尝试 telnet host.docker.internal 9000再次。它应该连接。如果没有,也许 PHPStorm 没有监听,或者没有配置为监听端口 9000?
  • 检查以确保启用了 Xdebug。您可以使用 php -i | grep grep Xdebug在容器内部,或使用任何其他您想要的技术来提供 phpinfo() 的输出,包括 Drupal 的 admin/reports/status/php。你应该看到 with Xdebug v2.9.6, Copyright (c) 2002-2020 php -i | grep "xdebug.remote_enable"应该给你xdebug.remote_enable: On .
  • 在您项目的 index.php 的第一行相关行中设置断点,然后使用浏览器访问该站点。它应该停在那里。

  • 来自@heddn 的注释:如果您只想让 xdebug 为 fpm 运行, phpenmod -s fpm xdebug例如,而不是运行 enable_xdebug .
    @mfrieling 的注释:如果您使用浏览器扩展程序,例如 XDebug Helper它设置了一个 IDE key ,该 key 必须与服务器上的相同。自 DDEV 1.10.0 “在 web 和 db 容器中为您创建了一个真实用户,其中包含您的用户名和用户 ID”,默认情况下它也用作 IDE key 。服务器上使用的 IDE key 必须相同,发送的浏览器扩展/cookie 和 PHPStorm。您可以通过创建文件 .ddev/php/xdebug.ini 来更改 DDEV 中的 IDE key 。使用以下两行(将 PHPSTORM 替换为您要使用的值:
    [XDebug]
    xdebug.idekey = PHPSTORM
    欢迎您的关注!

    关于phpstorm - 如何让 xdebug/step-debugging 与 ddev 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49677199/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com