rfa*_*fay 3 xdebug phpstorm ddev
我一直在使用 ddev 处理我的 Drupal 项目,现在想使用 xdebug,所以我可以使用 PhpStorm 进行逐步调试(或者任何 IDE 都可以)。但我似乎无法让它在断点处停止。我试图按照ddev docs 中的说明进行操作,但这并不能让我继续前进,而且我不知道下一步该做什么。我做了:
xdebug_enabled: true和ddev start(并使用 phpinfo 检查以查看 xdebug 是否已启用。)在任何设置中调试 xdebug 都可能有点麻烦,但这里是要采取的步骤:
ddev exec enable_xdebug需要时启用它,ddev exec disable_xdebug当他们完成它时,但它也可以在.ddev/config.yaml.ddev ssh进入网络容器。你能ping host.docker.internal(并得到回应)吗?如果你不能,你可能有一个过于激进的防火墙。ddev ssh: 可以telnet host.docker.internal 9000连接吗?如果是这样,那么您在端口 9000 上运行了其他东西,可能是 php-fpm。使用lsof -i :9000 -sTCP:LISTEN找出什么是存在的,停止或改变Xdebug的端口和配置PHPStorm使用新的一个。在您的 telnet 命令无法连接之前不要继续。ddev ssh然后再试telnet host.docker.internal 9000一次。它应该连接。如果没有,也许 PHPStorm 没有监听,或者没有配置为监听 9000 端口?php -i | grep grep Xdebug在容器内部使用,或者使用您想要的任何其他技术来提供 输出phpinfo(),包括 Drupal 的 admin/reports/status/php.ini。你应该看到with Xdebug v2.9.6, Copyright (c) 2002-2020并且 php -i | grep "xdebug.remote_enable"应该给你xdebug.remote_enable: On。@heddn 的注释:phpenmod -s fpm xdebug例如,如果您只想让 xdebug 为 fpm运行,而不是运行enable_xdebug.
@mfrieling 的注释:如果您使用设置 IDE 密钥的XDebug Helper等浏览器扩展,则必须与服务器上的相同。从DDEV 1.10.0 开始, “在 web 和 db 容器中为您创建了一个真实用户,带有您的用户名和用户 ID”,默认情况下也用作 IDE 密钥。服务器上使用的 IDE 密钥必须相同,发送的浏览器扩展/cookie 和 PHPStorm。您可以通过创建.ddev/php/xdebug.ini包含以下两行的文件来更改 DDEV 中的 IDE 密钥(替换PHPSTORM为您要使用的值:
[XDebug]
xdebug.idekey = PHPSTORM
Run Code Online (Sandbox Code Playgroud)
欢迎您的关注!
| 归档时间: |
|
| 查看次数: |
2599 次 |
| 最近记录: |