2016-07-28 3 views
2

Я установил php 5.6 и Apache на своем Mac и установил IntelliJ с установленным плагином php (2016.2). Проблема в том, что IDE не хочет подключаться к локальному серверу.IntelliJ Отладчик PHP не подключается

Я добавил следующие строки в моей php.ini:

[xdebug] 
zend_extension=/usr/local/Cellar/php56/5.6.24/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so 
xdebug.remote_enable = 1 
xdebug.remote_autostart = 1 
xdebug.remote_port = "9000" 

и когда я бегу php -v я получаю:

Zend v2.6.0 Engine, Copyright (с) 1998- 2016 Zend Technologies с Xdebug V2.4.0, Copyright (с) 2002-2016, по Дерик Rethans

и phpinfo() показывает

xdebug.remote_enable На На
xdebug.remote_port 9000 9000

Но IntelliJ показывает:

xdebug.remote_enable 0 

Я проверил, что я указываю на право php.ini (проверенный путь и другие изменения появляются при редактировании файла).

Я пробовал все конфигурации (в том числе с ключом IDE), но ничего не работает.

Есть ли способ проверить, действительно ли отладка работает (т. Е. Что IDE не распознает что-то или не работает на сервере), потому что на данный момент я не знаю, в чем проблема.

+0

* «Проблема в том, что IDE не хочет подключаться к локальному серверу» * Что вы подразумеваете под этим ** точно **? Если речь идет о отладке PHP .. тогда IDE ** никогда ** не подключается к локальному серверу (или что-то еще). это xdebug, который подключается к отладочному клиенту (IDE в нашем случае). Проверьте, как это работает: https://xdebug.org/docs/remote – LazyOne

+0

* ", и когда я запускаю php -v, я получаю:« * На некоторых настройках Mac (например, MAMP), а также на большинстве дистрибутивов Linux PHP будет использовать один php.ini для CLI и Apache будут использовать разные. Поэтому - если вы хотите отлаживать веб-страницу (через браузер), вам нужно проверить вывод 'phpinfo()', полученный через браузер. Там вы можете увидеть разные используемые php.ini. * * Но IntelliJ показывает: xdebug.remote_enable 0 "* просто подтверждает, что (по крайней мере, дает очень сильный намек в этом направлении). – LazyOne

+0

Ну, я добавил, что показывает phpinfo() (это было через браузер), а IDE сообщает, какой php.ini он «Я не хочу подключаться». Я имею в виду, когда я запускаю отладчик, он не попадает ни в какие braekpoint, и он не показывает никаких ошибок при запуске/остановке локального сервера. –

ответ

2

Лучший способ собрать xdebug log для такой неудачной сессии отладки, чтобы увидеть, что он должен сказать. Иногда debug не работает для вас (среда IDE не реагирует), но xdebug фактически соединяется где-то просто отлично (например, другая служба .. как описано ниже).

Существует вероятность того, что у вас будет php-fpm, работающий на вашем компьютере (это зависит от того, как вы установили свой PHP - какой инструмент вы использовали для этого). По умолчанию php-fpm использует тот же TCP 9000-порт, что и xdebug.

sudo lsof -nP -iTCP -sTCP:LISTEN 

Выполнить эту команду в терминале - он должен сказать (после фильтрации результатов по 9000 ключевому слову), какие услуги уже прослушивает этот порт.

Если это действительно php-fpm .. то меняется Xdebug порт из умолчанию 9000 в любой другой (например, 9001 или любой другой обычно неиспользуемый порт) в обоих параметрах IDE + php.ini будет решить эту проблему.

Смежные вопросы