Netbeans + Xdebug + php не работает

Мои netbeans не работают с точками останова, используя xdebug, моя конфигурация выглядит правильно, поэтому я настроил первый раз, когда я подбежал, чтобы прекратить отладку с тех пор, как никогда не работал, у кого-то была эта проблема? Версия моего netbeans – 6.8, а версия php – 2.5.2.

my php.ini:

zend_extension_ts = d:\wamp\bin\php\php5.2.5\ext\php_xdebug-2.0.2-5.2.5.dll xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.idekey=netbeans-xdebug xdebug.profiler_enable=1 

Solutions Collecting From Web of "Netbeans + Xdebug + php не работает"

В моем случае эта строка должна была быть включена в php.ini:

 xdebug.remote_autostart=on 

Вот раздел конфигурации для XDebug:

 [xdebug] xdebug.remote_enable = on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.idekey="netbeans-xdebug" xdebug.remote_autostart=on xdebug.profiler_enable = on xdebug.profiler_enable_trigger = on xdebug.profiler_output_name = cachegrind.out.%t.%p xdebug.profiler_output_dir = "d:/wamp/tmp" 

Контрольный список для xdebug:

  1. Убедитесь, что xdebug загружен в phpinfo() , а значение времени выполнения соответствует ожидаемой конфигурации .
  2. xdebug.remote_enable .
  3. xdebug.extended_info должен быть xdebug.extended_info для выполнения контрольных точек.
  4. xdebug.remote_port должен быть таким же, как ide и не использоваться .
  5. xdebug.remote_handlerdbgp .
  6. xdebug.idekey должен быть установлен так же, как ключ ide, если xdebug.remote_autostart .
  7. Иногда это помогает установить xdebug.remote_host для интрасети IP или имени компьютера вместо локального ip 127.0.0.1. PHP должен быть разрешен брандмауэром для подключения к этому хосту и порту.
  8. Установка xdebug.remote_log в файл поможет проверить, что не так. Отключить журнал, как только отладка будет работать.

Пример конфигурации:

 [xdebug] xdebug.extended_info=on xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_autostart=on xdebug.idekey="netbeans-xdebug" 

Контрольный список для NetBeans:

  1. Брандмауэр должен разрешать Netbeans прослушивать соединение с настроенным хостом.
  2. Инструменты -> Параметры -> PHP -> Отладка, проверьте порт. Также проверьте идентификатор сеанса, если включен xdebug.remote_autostart.
  3. Тип проекта должен быть PHP.
  4. Свойства проекта -> Источник, корень сети должны быть правильными.
  5. Свойства проекта -> Запустить конфигурацию, файл индекса должен быть PHP (или пустым) для работы Ctrl + F5.
  6. Свойства проекта -> Запустить конфигурацию -> Дополнительно, URL-адрес отладки должен быть «По умолчанию» или «Спросить каждый раз».
  7. Свойства проекта -> Запустить конфигурацию -> Дополнительно, сопоставление маршрутов должно быть правильным. (например, пустой, если нет отображений)

(Большинство параметров по умолчанию работают из коробки, поэтому, если вы отчаянно пытаетесь удалить и воссоздать проект.)

False Инструкции , протестированные на PHP 5.5 и xdebug 2.2:

  1. PHP output_buffering не нужно отключать. (Но может помочь в отладке)
  2. Можно загрузить модуль OPCache (Zend Cache).
  3. xdebug.profiler_enable может быть включен.

Пожалуйста, отредактируйте этот ответ, если найдете что-то новое.

  • Убедитесь, что у вас есть правильная версия Xdebug для вашей версии PHP (включая потокобезопасную / не потокобезопасную и 64-битную / 32-битную).
  • В некоторых новых версиях PHP вам нужно использовать zend_extension, а не zend_extension_ts, независимо от того, есть ли у вас версия TS Xdebug.

(Я отвечаю ответом, поскольку форматирование в комментариях не работает должным образом)

То же самое произошло для меня: работал один раз, а затем остановился. Тем не менее, я достиг точки в моей конфигурации, где он начал работать без проблем, и я могу поделиться.

Сначала я переместился поверх php.ini загрузчика икону:

 [PHP] zend_extension=/Applications/MAMP/bin/php5/zend/lib/ioncube_loader_dar_5.2.so 

Затем я поместил эти строки в конфигурацию xdebug:

 [xdebug] zend_extension="/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so" xdebug.default_enable=1 xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 

И прокомментировал все строки о Zend Optimizer

 [Zend] ;zend_optimizer.optimization_level=15 ;zend_extension_manager.optimizer=/Applications/MAMP/bin/php5/zend/lib/Optimizer-3.3.3 ;zend_optimizer.version=3.3.3 

Я работаю над MAMP, поэтому пути к моим библиотекам относятся к моей папке MAMP.

Удачи

zend_extension = "C:\xampp\php\ext\php_xdebug-2.2.3-5.4-vc9.dll"xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp"xdebug.remote_host = "localhost" xdebug.remote_port="9000" xdebug.remote_mode=req xdebug.trace_output_dir = "C:\xampp\tmp" xdebug.idekey="netbeans-xdebug"

это работает на меня ..

Вот как я смог заставить его работать с w / mulitple установками PHP-FPM homebrew.

Я использовал эту замечательную статью для нескольких установок:

https://echo.co/blog/os-x-1010-yosemite-local-development-environment-apache-php-and-mysql-homebrew

В комментариях к этому сообщению вы увидите, как установить xdebug, в нижней строке:

 brew install php56-xdebug 

Вам нужно установить xdebug для каждого установленного вами PHP-кода. Homebrew создаст файл xdebug.ini для каждой установленной вами версии php. У каждого будет такой путь, как:

 /usr/local/etc/php/<version # ie "5.6">/conf.d/ext-xdebug.ini 

В этой статье устанавливается DNSMasq, который работает на порту xdebug по умолчанию (9000), поэтому вам нужно будет изменить порт xdebug на что-то другое (9001 отлично работает).

Отредактируйте вышеупомянутый файл ext-xdebug.ini (или файлы, если вы установили более одной версии php.) Вот что работает для меня:

 [xdebug] zend_extension="/usr/local/opt/php56-xdebug/xdebug.so" ; General config ; Dumps local variables on exception xdebug.show_local_vars=On ; Dump server variables xdebug.dump.SERVER=* ; Dump global variables xdebug.dump_globals=On xdebug.collect_params=4; ; Tracing ;xdebug.auto_trace=On ;xdebug.trace_output_dir= /opt/local/php_traces/ xdebug.show_mem_delta=On xdebug.collect_return=On ; Debugging. You might need to specify your host with some additional options xdebug.remote_enable=1 : from http://devzone.zend.com/1147/debugging-php-applications-with-xdebug/ xdebug.remote_host="localhost" xdebug.remote_port=9001 xdebug.remote_handler="dbgp" 

Первые две строки – это все, что есть в исходном файле homebrew.

BTW – когда я установил несколько версий PHP, этот файл ext-xdebug.ini был создан только для первой версии PHP, установленной мной. Я просто скопировал этот файл в другие места PHP-версии и изменил часть «php56-xdebug» пути в строке 2, чтобы отразить правильную версию php.

Обратите внимание: «xdebug.remote_port = 9001»

Затем в Netbeans (я использую 8.02 Mac osX10.10.3), я использую следующие настройки. Перейдите в раздел Настройки-> PHP-> Отладка

Порт отладки: 9001

Стоп на первой линии: ( непроверенный )

Watches & Balloon Evaluation: ( проверено – есть предупреждение, но оно отлично работает для меня.)

Также стоит отметить, что для того, чтобы xdebug отображался с помощью phpinfo () (или командной строки php -i), мне нужно перезапустить apache с помощью:

 launchctl unload -Fw ~/Library/LaunchAgents/homebrew.mxcl.php56.plist sudo apachectl restart launchctl load -Fw ~/Library/LaunchAgents/homebrew.mxcl.php56.plist 

По какой-то причине моя настройка требует, чтобы я запускал ее каждый раз при запуске. Вид боли, но я включил его в команду оболочки, чтобы легко переключаться между версиями.

Еще один намек: часть информации о вирусах php56 говорит:

 OS X 10.8 and newer come with php-fpm pre-installed, to ensure you are using the brew version you need to make sure /usr/local/sbin is before /usr/sbin in your PATH: PATH="/usr/local/sbin:$PATH" 

Пока я не добавил это в свой файл .profile_bash, изменения, внесенные в файл php-fpm.conf каждой версии, не были распознаны. Все остальное, казалось, работало, так что это сбивало с толку.

Надеюсь, это спасет чужое время и проблемы.

Если вы все еще застряли, вы можете попробовать следующее:

  • Загрузите новую версию xdebug с помощью мастера ( http://www.xdebug.org/wizard.php ), и если вы будете следовать инструкциям, возможно, вам повезет.
  • Это может помочь отключить брандмауэр.
  • Используйте другой порт в netbeans, например, в моем случае с использованием 9001 в netbeans и 9000 в xdebug.
  • Добавить в файл php.ini : xdebug.idekey=netbeans-xdebug .
  • Узнайте, есть ли у вас файл xdebug.ini и добавьте связанные с xdebug строки php.ini в этот файл.

Всегда проверяйте, чтобы вы перезапустили службу apache, чтобы проверить все.