Я использую PhpStorm
на одной машине и php-fpm
на другой. У меня есть ssh-туннель между ними.
У меня есть доказательства следующих утверждений:
Туннель
ssh
настроен правильно и работает (используюnc
иnc -l
для проверки).xdebug
настроен правильно и работает (я используюnc -l
для получения соединений, а также могу успешно использовать другую IDE (vscode))phpstorm
принимает входящие соединения
Страница моего сайта постоянно обновляется, и в консоли туннеля я вижу постоянные сообщения
connect_to localhost port 9001: failed
Что доказывает, что xdebug
пытается подключиться к IDE
при каждом обновлении, но безуспешно.
Затем я нажимаю
Start listening for PHP Debug Connections
и эти сообщения исчезнут.
Это означает, что ssh
теперь может подключиться к IDE
.
Но проблема в том, что больше ничего не происходит. Никаких триггеров точек останова, никаких диалоговых окон с отображением, ничего.
Что еще можно проверить, чтобы исправить это?
Версия Php: 5.6.33-0+deb8u1 Версия Xdebug: 2.2.5 Версия Phpstorm: 2020.3
В журнале xdebug
появляется следующее:
Log opened at 2020-12-22 12:14:17
I: Connecting to configured address/port: 127.0.0.1:9001.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///settings/html/load_menu.php" language="PHP" protocol_version="1.0" appid="13307" idekey="1"><engine version="2.2.5"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2014 by Derick Rethans]]></copyright></init>
<!**************** MY REMARK ********************!>
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>
Log closed at 2020-12-22 12:14:17
Обратите внимание на my remark
место. Если я получаю соединения с nc -l 9001
, он ждет в этом месте, пока я не разорву соединение с Ctrl-C
.
Если я получаю соединение с PhpStorm
или не получаю его, оно сразу проходит это место.
Это означает, что phpstorm
получает входящее соединение и тут же сбрасывает его. Почему?
Если я получаю соединения с vscode
, появляется много сообщений типа
<- breakpoint_list -i 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="breakpoint_list" transaction_id="1"></response>
появляется на my remark
месте