PhpStorm Xdebug,WSL2,Docker //无法评估表达式'$ _SERVER ['SERVER_PORT']'

问题描述

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

我的带有Xdebug的PHP 7.3解释器位于其中一个容器中。一旦进入FPM上下文-如果我只是在PHPStorm中激活了远程调试,就可以调试一切。

现在我需要调试一个CLI脚本,PHPStorm向我显示以下错误

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

因此Xdebug可以清晰地到达PHPStorm,我在此JetBrains支持论坛,StackOverflow或Google上发现的所有提示似乎都无法解决问题。我认为在CLI上下文中运行内容时,SERVER_PORT通常不可用。

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

  • SSH-我没有ssh服务器,仅将其添加到容器中只是为了进行PHPStorm调试,听起来像是过分的
  • Docker-我需要连接到一个正在运行的容器,而不是从映像中启动一个新容器(我需要针对该脚本的持久数据库连接),而且应该在本地执行的实际映像是一个多阶段映像,PHPStorm不支持​​。
  • Docker Compose-不起作用,我在Windows上没有docker compose,一切都在WSL“容器”内部
  • WSL-不起作用,我的PHP不在WSL内,它更深一层-在WSL下运行的Docker内部。
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上下文中工作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)