PHP Xdebug Docker ошибка: выполняется операция (29) - PullRequest
0 голосов
/ 08 мая 2020

Я хочу настроить Xdebug для проекта. Я использовал его раньше в другом проекте и на другом компьютере, но мне кажется, что он больше не работает.

Я уже пробовал все в этом потоке: Опрос успешно, но ошибка: Операция сейчас в прогресс (29). когда Xdebug пытается подключиться к PhpStorm из docker контейнера

Я использую Fedora 31, docker -compose версии 1.25.3 и:

/var/www/app $ php -v
PHP 7.2.30 (cli) (built: May  7 2020 01:46:39) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.30, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.9.5, Copyright (c) 2002-2020, by Derick Rethans

вместо PhpStorm Я использую IntelliJ с плагинами PHP. Однако это не должно иметь значения, если я правильно установил ключи IDE - и я уже однажды уже работал с этой настройкой.

Я использовал этот учебник в качестве справочника: https://brunopaz.dev/blog/docker-phpstorm-and-xdebug-the-definitive-guide (единственные изменения, которые я внес, - это строка журнала отладки и значение remote_host в .env)

Я клонировал репозиторий и попытался установить первое соединение. Однако это отображается в моем журнале Xdebug.log:

[29] Log opened at 2020-05-08 11:00:27
[29] I: Connecting to configured address/port: 192.168.64.2:9001.
[29] W: Creating socket for '192.168.64.2:9001', poll success, but error: Operation in progress (29).
[29] E: Could not connect to client. :-(
[29] Log closed at 2020-05-08 11:00:27

Вывод Ifconfig:

╰─ ifconfig
br-f448fc0acecb: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.64.1  netmask 255.255.240.0  broadcast 192.168.79.255
        inet6 fe80::42:80ff:fe75:df5d  prefixlen 64  scopeid 0x20<link>
        ether 02:42:80:75:df:5d  txqueuelen 0  (Ethernet)
        RX packets 1822968  bytes 110057923 (104.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3025666  bytes 4582341398 (4.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:e7ff:feb8:e2d4  prefixlen 64  scopeid 0x20<link>
        ether 02:42:e7:b8:e2:d4  txqueuelen 0  (Ethernet)
        RX packets 1822968  bytes 110057923 (104.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3025666  bytes 4582341398 (4.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.150  netmask 255.255.255.0  broadcast 192.168.178.255
        inet6 fe80::e24a:5ec6:b3f9:9dc5  prefixlen 64  scopeid 0x20<link>
        inet6 2001:1c00:315:1500:1fb1:d8bd:b002:5191  prefixlen 64  scopeid 0x0<global>
        ether 04:d9:f5:f7:76:68  txqueuelen 1000  (Ethernet)
        RX packets 19479205  bytes 24420916905 (22.7 GiB)
        RX errors 0  dropped 3  overruns 3  frame 0
        TX packets 11312108  bytes 2575096346 (2.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0xf7600000-f761ffff  

enp6s0f1u3u1i5: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:1f:b5:33:03:c6  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 427341  bytes 565246744 (539.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 427341  bytes 565246744 (539.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth3504215: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::f4fa:d6ff:fe4d:49e7  prefixlen 64  scopeid 0x20<link>
        ether f6:fa:d6:4d:49:e7  txqueuelen 0  (Ethernet)
        RX packets 88  bytes 114008 (111.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 255  bytes 44491 (43.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth4a0c68d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::dc11:8aff:fe4c:8c46  prefixlen 64  scopeid 0x20<link>
        ether de:11:8a:4c:8c:46  txqueuelen 0  (Ethernet)
        RX packets 124  bytes 133321 (130.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 299  bytes 148242 (144.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:46:2c:8a  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Таким образом, принятый ответ в другом потоке - проверить, если remote_host (IntelliJ в этом case) доступен из контейнера. Мой результат (я перепробовал их все; 127.0.0.1, localhost, 192.168.178.150, 192.168.64.2, 192.168.64.1, 172.17.0.1):

/var/www/app $ nc -vvvz 127.0.0.1 9001
nc: 127.0.0.1 (127.0.0.1:9001): Connection refused
sent 0, rcvd 0

/var/www/app $ nc -vvvz 192.168.178.150 9001
nc: 192.168.178.150 (192.168.178.150:9001): Host is unreachable
sent 0, rcvd 0

/var/www/app $ nc -vvvz 192.168.64.2 9001
nc: 192.168.64.2 (192.168.64.2:9001): Connection refused
sent 0, rcvd 0

/var/www/app $ nc -vvvz 192.168.64.1 9001
nc: 192.168.64.1 (192.168.64.1:9001): Host is unreachable
sent 0, rcvd 0

/var/www/app $ nc -vvvz 172.17.0.1 9001
nc: 172.17.0.1 (172.17.0.1:9001): Host is unreachable
sent 0, rcvd 0

/var/www/app $ netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'
192.168.64.1

Мои единственные действительные кандидаты - 192.168.64.2 и 127.0.0.1, потому что они, по крайней мере, отказываются от соединения. Но почему ему отказывают? 192.168.64.2 и 127.0.0.1 выдают одну и ту же ошибку Xdebug:

[22] I: Connecting to configured address/port: 127.0.0.1:9001.
[22] W: Creating socket for '127.0.0.1:9001', poll success, but error: Operation in progress (29).
[22] E: Could not connect to client. :-(
[22] Log closed at 2020-05-08 11:22:18

Однако я не могу найти больше информации об ошибке 29. Я также добавил порт 9001 в UDP / TCP. брандмауэр ... У меня также есть конфигурация IDE точно такая же, как в руководстве. Я, честно говоря, больше не знаю, где искать.

Кроме того, сервер IntelliJ работает:

╰─ sudo lsof -nPi| grep LISTEN | grep 9001
java       895571      hq  108u  IPv4 17315451      0t0  TCP *:9001 (LISTEN) 

Может ли кто-нибудь указать мне правильное направление? На данный момент у меня совершенно нет идей: |

...