我在GitHub和StackOverflow上读了很多帖子,但我没有找到答案。
我的Docker容器中有PHP 7.4和Xdebug 3。IDE是PhpStorm。当我在浏览器中使用Xdebug时,Xdebug工作正常。但当我在容器中使用PHP CLI时,Xdebug不工作。
xdebug.ini:
zend_extension=xdebug.so
[xdebug]
xdebug.mode = debug
xdebug.client_port = 9003
xdebug.discover_client_host = 1
xdebug.remote_log=/var/log/xdebug.log
我从容器连接bash:docker exec -it CONTAINER_NAME bash
并运行以下示例:bin/console my:command
(Symfony)。没有结果,当我添加到配置xdebug.start_with_request = yes
时,我可以看到警告:
Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (fallback through xdebug.client_host/xdebug.client_port) :-(
它看起来像容器不能连接到我的主机系统,其中是PhpStorm与开放9003端口.但当使用相同的配置在Web服务器上它的工作...
root@31aab3e484e1:/var/www/symfony# php -v
PHP 7.4.13 (cli) (built: Dec 11 2020 08:31:11) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Xdebug v3.0.1, Copyright (c) 2002-2020, by Derick Rethans
我错在哪里了?是php config还是phpstorm?
1条答案
按热度按时间zte4gxcn1#
在Ubuntu 20.04上对我有效。
添加到项目的
docker-compose.yml
(网址:https://github.com/docker/for-linux/issues/264#issuecomment-772844305)
在您的CLI中运行
export XDEBUG_TRIGGER=1 && export PHP_IDE_CONFIG="serverName=host.docker.internal"
,使用请求启动xdebug。感谢@LazyOne对问题的评论和解决方案。