Xdebug не работает при выполнении консольной команды Symfony в Homestead - PullRequest
0 голосов
/ 04 февраля 2019

При выполнении bin/console cache:clear отладчик не остановится на первой строке кода.

Следующий вывод отображается в журнале xdebug.

[18806] Log opened at 2019-02-04 15:58:42
[18806] I: Checking remote connect back address.
[18806] I: Checking header 'HTTP_X_FORWARDED_FOR'.
[18806] I: Checking header 'REMOTE_ADDR'.
[18806] W: Remote address not found, connecting to configured address/port: 10.0.2.2:9000. :-|
[18806] I: Connected to client. :-)
[18806] -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///home/vagrant/projects/valkplanner2/bin/console" language="PHP" xdebug:language_version="7.3.0RC3" protocol_version="1.0" appid="18806" idekey="PHPSTORM"><engine version="2.7.0beta1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[https://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2018 by Derick Rethans]]></copyright></init>
[18806]

Я использую PhpStorm2018.3.3.Вот моя конфигурация отладки в PhpStorm: enter image description here

И это конфигурация Xdebug в /etc/php/7.3/cli/php.ini.

[xdebug]
xdebug.remote_enable=1
xdebug.remote_log="/home/vagrant/xdebug.log"
xdebug.remote_handler=dbgp
xdebug.collect_params=1
xdebug.remote_connect_back=0
;use `route -n` to find dev machine IP address from homestead environment (seems to default to 10.0.2.2)
xdebug.remote_host="10.0.2.2"
xdebug.default_enable=1
xdebug.remote_autostart=1
xdebug.show_local_vars=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir='/home/vagrant/profile'
xdebug.idekey=PHPSTORM

Отладчик работает очень хорошо, когдаЯ делаю запрос с браузером или почтальоном, используя ?XDEBUG_SESSION_START=PHPSTORM в URL или аддоне отладчика Chrome.

Журнал предполагает связь с xdebug, но PhpStorm не реагирует.

Кто-нибудь знает, в чем может быть проблема?

1 Ответ

0 голосов
/ 05 февраля 2019

Похоже, что другая служба прослушивает порт Xdebug вместо PhpStorm.

На Mac PhpStorm не может определить, используется ли порт Xdebug другой службой или нет (https://youtrack.jetbrains.com/issue/WI-29443).

Вы можете использовать команду sudo lsof -nP -iTCP -sTCP:LISTEN для просмотра того, какой может быть эта служба. Скорее всего, это будет php-fpm (так как он использует порт TCP 9000 по умолчанию). В Mac & Linux php-Скорее всего, fpm будет установлен на вашем компьютере разработчика (обычно устанавливается вместе с PHP).

Решение: изменить порт Xdebug со значения по умолчанию 9000 на другой порт, чаще всего это будетбудь просто следующим - 9001. Сделайте это как в php.ini, так и в PhpStorm (убедитесь, что в данный момент он не прослушивает отладочные соединения; если это произойдет, остановитесь и запустите снова). Если вы используете какой-либо веб-сервер (например, Apache), возможно, вам также потребуется перезапустить его (чтобы PHP читал новый конфиг).

...