Я хочу настроить 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)
Может ли кто-нибудь указать мне правильное направление? На данный момент у меня совершенно нет идей: |