0

我正在尝试在 Lando 环境中设置 CLI Xdebug。它可以在 Web 上完美运行,但我无法让它在 CLI 中运行以调试测试和脚本。

这是我的 .lando.yml 文件:

name: develop
recipe: wordpress
proxy:
  appserver_nginx:              
    - develop.loc

config:
  php: '7.3'
  via: nginx
  database: mariadb
  xdebug: true

我使用 PHPStorm 作为我的 IDE。我已经设置了服务器、服务器映射以及用于监听的端口 9000 和 9003,但它仍然不会在断点处停止。有人用 Lando 设置 CLI Xdebug 吗?有任何想法吗?感谢您的帮助。

4

1 回答 1

0

我设法让它工作。所以,想法是设置两个环境变量:

  1. PHP_IDE_CONFIG="serverName=localhost"localhost您的 PhpStorm 设置中的服务器名称在哪里。

  2. XDEBUG_TRIGGER="1"- 这个变量触发 xdebug。

但是我们如何动态地提供变量以使 XDEBUG_TRIGGER 仅在您想要的时候工作呢?

对于此类事情,Lando 有工具选项!因此,我们可以创建自定义命令来实现魔法,如下所示:

tooling:
  phpdebug:
    service: appserver
    cmd:
      - php
    env:
      XDEBUG_TRIGGER: 1
      PHP_IDE_CONFIG: "serverName=localhost"

然后重新启动(或重建)您的应用服务器,您将拥有一个全新的自定义命令,用于从 CLI 调试 PHP,如下所示:

lando phpdebug test.php

因此,它的工作方式与 相同lando php test.php,但提供了运行 Xdebug 所需的所有环境变量。

更新: 如果有人对如何从 Lando 环境调试 WP CLI 感兴趣:

lando phpdebug /app/vendor/wp-cli/wp-cli/bin/../php/boot-fs.php --version

因此,它与 相同lando wp --version,但提供了 Xdebug 环境变量

PS请注意 - 这是 Xdebug 3 的说明。

于 2021-03-11T16:48:25.870 回答