首页 > 解决方案 > PhpStorm Xdebug、WSL2、Docker // 无法评估表达式 '$_SERVER['SERVER_PORT']'

问题描述

我在一组由 docker-compose 本地编排的 docker 容器中运行 Magento2 PHP 应用程序。我在 WSL2 模式下运行 Docker Desktop for Windows。

我的带有 Xdebug 的 php 7.3 解释器位于其中一个容器中。一旦我在 FPM 上下文中 - 如果我刚刚在 PhpStorm 中激活了远程调试,我就可以很好地调试。

现在我需要调试 CLI 脚本,PhpStorm 显示以下错误:

Cannot evaluate expression '$_SERVER['SERVER_PORT']'

所以 Xdebug 可以清楚地到达 PhpStorm,我在这个 JetBrains 支持论坛、StackOverflow 或其他 Google 上找到的所有提示似乎都不能解决问题。我认为SERVER_PORT当我们在 CLI 上下文中运行时通常不可用。

我也无法在 PhpStorm 中正确设置 CLI 解释器:

PHP 7.3.18-1+0~20200515.59+debian10~1.gbp12fa4f (cli) (built: May 15 2020 12:43:10) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.18, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.18-1+0~20200515.59+debian10~1.gbp12fa4f, Copyright (c) 1999-2018, by Zend Technologies
with Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick Rethans

此 Xdebug 配置适用于 FPM 上下文中的调试:

cat xdebug.ini
zend_extension=xdebug.so
xdebug.remote_enable=on
xdebug.remote_autostart=1
; this is IP of windows host that is visible for docker
xdebug.remote_host=172.31.64.1
xdebug.remote_handler=dbgp

如何让 Xdebug 也可以在 CLI 上下文中工作?

标签: phpdockerphpstormxdebugwindows-subsystem-for-linux

解决方案


推荐阅读