Xdebug : [Step Debug] 디버깅 클라이언트에 연결할 수 없습니다.
Xdebug 3.0.0RC1을 사용하여 변경된 사항과 함께 제공되는 새로운 기능을 살펴보고 싶습니다. 또한 주요 구성없이 Xdebug 3을 지원하는 최신 PhpStorm 2020.3 EAP를 사용하고 있습니다. 다음은 디버거에 대한 PhpStorm 구성입니다.

다음은 Xdebug3에 대해 시도한 구성입니다.
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal # here I tried several combinations like: "localhost", "127.0.0.1", "172.17.0.1"
xdebug.client_port=9001 # here I tried several ports 9003 included with no success
나는 또한 client_host/client_port
설정을 전혀 추가하지 않았고 여전히 실패했습니다.
이 오류가 발생합니다.
Script php bin/console doctrine:cache:clear-metadata returned with error code 255
!! [17-Nov-2020 15:24:40 UTC] Xdebug: [Step Debug] Could not connect to debugging client. Tried: host.docker.internal:9001 (through xdebug.client_host/xdebug.client_port) :-(
!! [17-Nov-2020 15:24:41 UTC] PHP Fatal error: Method class@anonymous::__toString() must not throw an exception, caught Symfony\Component\DependencyInjection\Exception\AutowiringFailedException: in /var/www/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php on line 233
내 환경에 대한 몇 가지 정보 :
- 페도라 33
- Docker 버전 19.03.13, 빌드 4484c46d9d
- PhpStorm 2020.3 EAP 빌드 # PS-203.5784.36
( host.docker.internal
내가 사용하고있는 Docker 버전에서 지원하지 않는 것이 분명하기 때문에 아직 작동하고 있기 때문에) 호기심이 많고 동시에 다음 구성이 Xdebug 2에서 작동한다는 점이 이상합니다. 디버거가 항상 들어오는 연결을 수신하도록합니다.

zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
xdebug.remote_autostart=0
xdebug.remote_enable=1
xdebug.remote_host=host.docker.internal
xdebug.remote_port=9000
내가 여기서 무엇을 놓치고 있습니까?
참고 : 이미 여기 에서 Xdebug 개발자가 제공 한 솔루션을 적용했습니다 .
답변
PHP 7.4
Docker
PHPStorm 2020.1
Xdebug 3.1.0
Dockerfile을 사용하여 Docker 컨테이너에 Xdebug 설치
RUN pecl install xdebug-3.0.1 && docker-php-ext-enable xdebug
다음과 같이 php.ini를 구성하십시오.
[xdebug]
xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.discover_client_host = 1
PHPStorm-설정-PHP-디버그-Xdebug로 이동하여 포트를 9003 (기본값)으로 설정합니다.
PHPStorm
그게 다입니다 (:
필요한 경우에만 디버거를 활성화 / 비활성화하려면 "Xdebug helper"라는 브라우저 확장을 설치하고 "Debug"를 선택하고 php.ini에서 "xdebug.start_with_request = yes"를 제거하십시오.
[xdebug]
xdebug.mode = debug
xdebug.discover_client_host = 1
나는 우리가 작동 할 때까지 나를 도와 준 @LazyOne에게 큰 감사를 표할 것이다. 다음은 현재 구성이 어떻게 보이고 잘 작동하는지입니다.
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
xdebug.mode=debug
xdebug.client_port=9005
또한 File | Settings | Languages & Frameworks | PHP | Servers
새 포트 를 반영 하도록 Xdebug 포트를 업데이트해야 하지만 Xdebug3 수신 연결에서 수신 대기하는 옵션도 활성화해야합니다. (PhpStorm 2020.3에서 기본적으로 활성화되어 있다고 생각합니다.)

중간에 브라우저가없는 백엔드 프로젝트에 대한 설정입니다. 시도하지는 않았지만 다음이 필요할 수 있습니다.
xdebug.start_with_request=yes
또한 File | Settings | Languages & Frameworks | PHP | Servers
잘 구성되어 있습니다.
참고 : 우리는 호스트가 IPv6를 활성화했고 내가 그것을 해제하고 추가로 통해 IDE에 다음 설정을 추가 발견
Help > Edit Custom VM options
:-Djava.net.preferIPv4Stack=true
. IDE에 IP4 설정을 추가 한 후 IPv6를 다시 활성화하지 않았으며 Xdebug 3이 여전히 작동하는지 확인했습니다.