2010-01-04 3 views
2

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

Я следовал за этим: 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, port 9000 etc info. После этого xdebug IS указан, когда я делаю PHP -m тоже, но я ВСЕГДА получаю проблему NetBeans. Странно достаточно php -i показывает версию 5.2.10, а не 5.2.11, как указано выше!

Я также попытался это, добавляя "Netbeans-XDebug" для idekey: Why does xdebug not establish connection with NetBeans?

Каким PHP_INFO(), казалось, найти файл php.ini под ../ MAMP/... и не делая PMP -m, когда он считывается из/etc?

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

Как я могу решить проблему NetBeans теперь, когда xDebug, кажется, установлен правильно, но все еще не работает в NetBeans? Что-то с этой необходимостью для двойного 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 PM

+0

Чтобы упростить вопрос много: Можно ли думать о причине тха t NeatBeans не может подключиться к xDebug, когда xDebug кажется установленным при проверке с помощью php_info() или php -i и php -m? –

ответ

0

Я скачал неправильный xdebug.so от Комодо и как-то и моя собственная сборка не было ничего хорошего. Скачан снова, и теперь его ОК. Вау, это заняло у меня МНОГИЕ часы, и никто не мог помочь! /PM

3
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() использует MAMP в PHP двоичный файл, в то время как 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? 

Оставьте OS PHP нетронутым, так что вам не придется модернизировать проблему и настроить один bubled с 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, похоже, не по умолчанию.

0

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

0

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

brew install php55-xdebug

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

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

    zend_extension = "/ USR/Lib/PHP/расширения/нет отлаживать-не-ЗТС-20100525/xdebug.so"

    xdebug.default_enable = 1
    xdebug.remote_enable = 1
    xdebug.remote_handler = DBGp
    xdebug.remote_host = локальный
    xdebug.remote_port = 9001
    xdebug.remote_autostart = 1