在 VS Code 上使用 XDEBUG_TRIGGER env 时 Xdebug 不启动

Xdebug not starting when use the XDEBUG_TRIGGER env on VS Code

我在 VS Code 中配置 Xdebug,当我使用 start_with_request=trigger 设置时它不起作用。 如果我将配置值设置为 yes 它会起作用。 我认为 VS Code 没有从 launch.json 文件发送环境变量。

我的 Xdebug ini 文件:

zend_extension=xdebug.so
xdebug.mode = debug
xdebug.start_with_request = trigger

我的launch.json:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "env": {
                "XDEBUG_TRIGGER": "true"
            }
        }
    ]
}

我在 Ubuntu VM 和 Windows 10 上使用 VSCode 和 Microsoft Remote-SSH 扩展。 我的Xdebug扩展是XDebug官方扩展

来自 Xdebug 的日志:

[2393] Log opened at 2022-03-29 13:54:04.173262
[2393] [Config] DEBUG: Checking if trigger 'XDEBUG_TRIGGER' is enabled for mode 'debug'
[2393] [Config] INFO: Trigger value for 'XDEBUG_TRIGGER' not found, falling back to 'XDEBUG_SESSION'
[2393] [Config] INFO: Trigger value for 'XDEBUG_SESSION' not found, so not activating
[2393] [Config] DEBUG: Checking if trigger 'XDEBUG_TRIGGER' is enabled for mode 'debug'
[2393] [Config] INFO: Trigger value for 'XDEBUG_TRIGGER' not found, falling back to 'XDEBUG_SESSION'
[2393] [Config] INFO: Trigger value for 'XDEBUG_SESSION' not found, so not activating
[2393] Log closed at 2022-03-29 13:54:04.360936

vscode-php-debug 在这里开发。

这是一个常见的误解。提供的 launch.json 仅侦听 Xdebug/DBGp 连接 - 正如默认名称所暗示的那样。如果那里还有一个 program 设置,VS Code 也会启动一个 (php) 进程。只有在这种情况下,VS Code 才能为新启动的进程的环境做出贡献。

因此,假设您是 运行 网络服务器,您只能通过修改 php.ini 或以某种方式更改该网络服务器进程的进程环境来更改 Xdebug 设置...

您还可以通过在当前代码段的末尾键入 php 来查看其他 launch.json snippers。也许其中一些可能有用。

如果有人设置了 env 而没有设置 program...

,也许我应该添加一个警告