xDebug, похоже, установлен нормально, но не подключается к NetBeans

StackOverflow https://stackoverflow.com/questions/2002481

  •  18-09-2019
  •  | 
  •  

Вопрос

Теперь я часами пытался заставить xDebug (2.0.5, скомпилированный из исходного кода) работать на моем MacBook OS X с NetBeans 6.8.Я установил MAMP и запускаю с ним небольшую тестовую программу на PHP (5.2), никаких проблем.Но когда я пытаюсь отладить, я получаю этот текст в Netbeans:"Ожидание подключения (netbeans-xdebug)" и больше ничего не происходит.Netbeans настроен для порта отладчика 9000.Нет оптимизации Zend в MAMP.

Я следил за этим: http://netbeans.org/kb/docs/php/configure-php-environment-mac-os.html#installEnableXdebug и http://www.xdebug.org/docs/install и http://forums.netbeans.org/topic1513-0-asc-0.html и т.д.

Вот часть моего php.ini

[XDebug]

;zend_extension="/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"

;[Zend]

;zend_optimizer.optimization_level=15

;zend_extension_manager.optimizer=/Applications/MAMP/bin/php5/zend/lib/Optimizer-3.3.9

;zend_optimizer.version=3.3.9

; Xdebug config for Mac OS X and NetBeans IDE

zend_extension=/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so

xdebug.remote_enable=1

xdebug.remote_handler=dbgp

xdebug.remote_mode=req

xdebug.remote_host=localhost

xdebug.remote_port=9000

xdebug.idekey="netbeans-xdebug"

Я прочитал много инструкций по установке и т.д., и phpinfo показывает, что xDebug установлен нормально как V.5.2.11 (видно через "Открыть стартовую страницу" в MAMP).Однако, когда я пытаюсь в терминале PHP -m, я не вижу xdebug в списке.Я, наконец, понял, что PHP.INI считывается из / etc, поэтому я скопировал MAMP php.ini в php.ini там, таким образом, добавил туда информацию xdebug.se, localhost, порт 9000 и т.д.После этого xdebug ОТОБРАЖАЕТСЯ в списке, когда я тоже выполняю PHP -m, но я ПО-прежнему сталкиваюсь с проблемой NetBeans.Как ни странно, php -i показывает версию 5.2.10, а не 5.2.11, как указано выше!

Я также попробовал это, добавив "netbeans-xdebug" для idekey: Почему xdebug не устанавливает соединение с NetBeans?

Как получилось, что PHP_INFO(), похоже, нашел мой PHP.INI-файл в ../MAMP/...а не при выполнении PMP -m , когда он считывается из / etc ?

Как я могу заставить PHP всегда находить INI-файл в MAMP, чтобы мне не приходилось использовать два PHP.INI-файлы для et PHPINFO() и PHP -m для работы?

Как я могу решить проблему NetBeans теперь, когда xDebug, кажется, установлен правильно, но все еще не работает в NetBeans?Что-то с этой потребностью в dual php.ini?Мог ли я неправильно скомпилировать xdebug, как узнать?Что-то с версиями php в xdebug / php?Как проверить?

Вот часть результата из php -i:

xdebug

xdebug support => enabled
Version => 2.0.4

Supported protocols => Revision
DBGp - Common DeBuGger Protocol => $Revision: 1.125.2.6 $
GDB - GNU Debugger protocol => $Revision: 1.87 $
PHP3 - PHP 3 Debugger protocol => $Revision: 1.22 $

Directive => Local Value => Master Value
xdebug.auto_trace => Off => Off
xdebug.collect_includes => On => On
xdebug.collect_params => 0 => 0
xdebug.collect_return => Off => Off
xdebug.collect_vars => Off => Off
xdebug.default_enable => On => On
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value => no value
xdebug.dump.POST => no value => no value
xdebug.dump.REQUEST => no value => no value
xdebug.dump.SERVER => no value => no value
xdebug.dump.SESSION => no value => no value
xdebug.dump_globals => On => On
xdebug.dump_once => On => On
xdebug.dump_undefined => Off => Off
xdebug.extended_info => On => On
xdebug.idekey => pettermagnusson => netbeans-xdebug
xdebug.manual_url => http://www.php.net => http://www.php.net
xdebug.max_nesting_level => 100 => 100
xdebug.profiler_aggregate => Off => Off
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => Off => Off
xdebug.profiler_enable_trigger => Off => Off
xdebug.profiler_output_dir => /tmp => /tmp
xdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%p
xdebug.remote_autostart => Off => Off
xdebug.remote_enable => On => On
xdebug.remote_handler => dbgp => dbgp
xdebug.remote_host => 127.0.0.1 => 127.0.0.1
xdebug.remote_log => /tmp/xdebug.log => /tmp/xdebug.log
xdebug.remote_mode => req => req
xdebug.remote_port => 9000 => 9000
xdebug.show_exception_trace => Off => Off
xdebug.show_local_vars => Off => Off
xdebug.show_mem_delta => Off => Off
xdebug.trace_format => 0 => 0
xdebug.trace_options => 0 => 0
xdebug.trace_output_dir => /tmp => /tmp
xdebug.trace_output_name => trace.%c => trace.%c
xdebug.var_display_max_children => 128 => 128
xdebug.var_display_max_data => 512 => 512
xdebug.var_display_max_depth => 3 => 3

Rgds ВЕЧЕРА

Это было полезно?

Решение 2

Я загрузил неправильный xDebug.итак, из Komodo и каким-то образом также моя собственная сборка не годилась.Скачал снова, и теперь все в порядке.Вау, это заняло у меня МНОГО часов, и никто тоже не смог помочь!/ПМ

Другие советы

How come PHP_INFO() seemed to find my PHP.INI file under ../MAMP/... and not when doing PMP -m when it is read from /etc ?

phpinfo() использует двоичный файл PHP от MAMP, в то время как CLI использует двоичный файл вашей операционной системы.

How can I get PHP to always find the INI file under MAMP so I dont have to use two PHP.INI files to et PHPINFO() and PHP -m to work?

Оставьте PHP операционной системы нетронутым, чтобы у вас не возникло проблем с обновлением, и настройте тот, который был загружен с помощью MAMP, как вам нужно.

How can I resolve the NetBeans problem now that xDebug seems to be installed correctly but still not working in NetBeans? Something with this need for dual php.ini? Could I have compiled xdebug wrong, how to know? Something with php versions in xdebug / php? How to check?

Загрузите последнюю версию MAMP, которая включает скомпилированное расширение xdebug, и добавьте это в свой php.ini.

zend_extension="/Applications/MAMP/bin/php/php5.3.6/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_enable=1
xdebug.idekey="netbeans-xdebug"
xdebug.remote_log="/Applications/MAMP/logs/xdebug.log"

Я использую порт 9001, поскольку OSX, похоже, не нравится значение по умолчанию.

Я проверил и перепроверил все настройки и инструкции по установке, и все равно оказалось, что XDebug не работает.В конце концов я перезапустил свой Mac, и он волшебным образом начал работать.Может быть, это поможет кому-то в том же положении, что и я.

Это то, что работает на меня

brew install php55-xdebug

  • возьмите путь ini, затем вставьте следующий к последнему
    php -i | grep 'Configuration File'
    vim /usr/local/etc/php/5.5/php.ini

  • добавьте следующее

    zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"

    ошибка xdebug.default_enable=1
    xdebug.remote_enable=1
    xdebug.удаленный обработчик=dbgp
    xdebug.remote_host=локальный хост
    xdebug.remote_port=9001
    xdebug.удаленный автоматический запуск=1

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top