Ожидание подключения (netbeans-xdebug) MAMP OS X

преамбула

После многих часов мне не удалось подключить NetBeans к xdebug. Несколько месяцев назад, после перехода от старой версии MAMP к MAMP PRO, отладка работала безупречно. Неделю назад он начал становиться чешуйчатым. Казалось бы, он соединяется, но не останавливается на контрольных точках. Перезапуск NetBeans (v7.0.1) и apache иногда заставил его работать в течение короткого времени.

Я действительно нуждался в исправлении, поэтому установил последнюю версию MAMP PRO (2.1.2). Теперь я получаю сообщение «Ожидание подключения» навсегда.

Тестирование, которое я сделал

В то время как сообщение «Ожидание подключения» есть с движущейся полосой, я смотрю, не слышит ли она. Это…

# lsof -i -n -P |grep 9001 java 6496 tim 230u IPv6 0xffffff80239d8190 0t0 TCP *:9001 (LISTEN) 

В конфигурации php NetBeans у меня установлен интерпретатор: /Applications/MAMP/bin/php/php5.4.10/bin/php

Выполнение следующего:

 # /Applications/MAMP/bin/php/php5.4.10/bin/php -i | grep xdebug 

говорит, что xdebug запущен, как и phpinfo ()

Я (много раз) подтвердил, что у меня номер порта одинаковый везде. Я пробовал порт 9000 и 9001.

Выполнение хвоста на xdebug.log, а затем запуск сеанса из браузера без запуска сеанса отладки в NetBeans, дает:

 I: Connecting to configured address/port: localhost:9001. E: Could not connect to client. :-( 

С ожиданием сообщения о соединении и началом сеанса из браузера я получаю это в журнале:

 : Connecting to configured address/port: localhost:9001. I: Connected to client. :-) -> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Users/tim/MAMPSites/facts.tvd.us/htdocs/sendfile/tim.php" language="PHP" protocol_version="1.0" appid="7279" idekey="netbeans-xdebug"><engine version="2.2.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init> -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response> 

Мой файл php.ini имеет следующее:

 [xdebug] zend_extension="/Applications/MAMP/bin/php/php5.3.20/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so" xdebug.remote_enable=on xdebug.remote_log="/var/log/xdebug.log" xdebug.remote_host=localhost xdebug.remote_handler=dbgp xdebug.remote_port=9001 xdebug.idekey="netbeans-xdebug" 

Обновить

Я только заметил, что команда lsof выше показывает, что NetBeans прослушивает ipV6. Запретить использование java (NetBeans) для использования ipV4 не помогает.

 launchctl setenv JAVA_TOOL_OPTIONS -Djava.net.preferIPv4Stack=true 

Я нашел сообщение, которое предложило тест для подтверждения того, что xdebug работает правильно. Создайте файл php:

 <?php $address = '127.0.0.1'; $port = 9000; $sock = socket_create(AF_INET, SOCK_STREAM, 0); socket_bind($sock, $address, $port) or die('Unable to bind'); socket_listen($sock); $client = socket_accept($sock); echo "connection established: $client"; socket_close($client); socket_close($sock); ?> 

Запустите его из командной строки и загрузите в браузере любую страницу в следующем URL-адресе:

 ?XDEBUG_SESSION_START=nb 

Если он выводит что-то вроде «установлено соединение: Идентификатор ресурса №5», xdebug работает правильно. При этом я переустановил Java и NetBeans. Я сказал NetBeans НЕ импортировать мои существующие настройки … Все еще нет связи.

Update2

Я установил IDE phpStorm для Mac. Я достаточно узнал об этом, чтобы заставить отладчик работать с существующими настройками MAMP и xdebug. Я думаю, что это подтверждает проблему с NetBeans.

На данный момент получение этой работы кажется невозможным. 🙁

Solutions Collecting From Web of "Ожидание подключения (netbeans-xdebug) MAMP OS X"

Я спросил то же самое и получил этот неплохой ответ: как отслеживать время выполнения каждой строки / блока строк / методов в PHP? , кроме того, у меня есть этот ответ также в текущем запуске другого вопроса с тем же контентом.

Некоторые дополнительные замечания по этому поводу (материал, который я собрал в других сообщениях SO в своих исследованиях с этой проблемой):

  1. Порт может быть также 9001 (кажется, работает для некоторых людей, а 9000 нет).
  2. Переключение на PHPStorm IDE является реальной альтернативой, которая решает эту проблему (поскольку PHPStorm уже включил отлично функционирующий xdebug).
  3. Загрузите новую версию xdebug с помощью мастера ( http://xdebug.org/wizard.php ), и если вы будете следовать инструкциям, возможно, вам повезет.
  4. Это может помочь отключить брандмауэр.
  5. Добавить в php.ini: xdebug.idekey=netbeans-xdebug .
  6. Узнайте, есть ли у вас файл xdebug.ini и добавьте связанные с xdebug строки php.ini в этот файл.
  7. вам нужно отменить комментарий строки zend_extension (т. е. удалить в начале), поэтому Xdebug загружен.
  8. убедитесь, что Xdebug загружен, вызывая phpinfo () из файла PHP (просто чтобы убедиться).

Xdebug будет подключаться только в том случае, если в папке проекта есть файл index.php, поэтому убедитесь, что он у вас есть.

он работает для меня сейчас. У меня установлена ​​LAMP. Я изменил в соответствии со всеми ответами сверху, начал apache2, и теперь он летает … я счастлив … некоторое время я решил переключиться на phpstorm, но я пересмотрел … немного изменил … et voila. работает.

Вот что я имею в php.ini

 zend_extension = /usr/lib/php5/20121212/xdebug.so xdebug.max_nesting_level = 250 xdebug.auto_trace=On xdebug.remote_enable=On xdebug.remote_port=9001 xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_log="/var/log/xdebug.log" xdebug.trace_output_dir=/var/www/AMRO xdebug.idekey="netbeans-xdebug" 

На чистой загрузке и установке netbeans, работающих с xampp, xdebug работал, но не останавливался на контрольных точках. Изменен php.ini: xdebug.remote_enable = 1 (от 0) и xdebug работал как ожидалось!