xDebug似乎已安装,但未与NetBeans连接

时间:2010-01-04 21:49:59

标签: php macos netbeans xdebug

我现在已经尝试了几个小时从xDebug(从源代码编译的2.0.5)在我的MacBook OS X上使用NetBeans 6.8。我已经安装了MAMP并且正在运行一个小的PHP(5.2)测试程序,没问题。但是当我尝试调试时,我在Netbeans中得到了这个文本:“等待连接(netbeans-xdebug)”,没有更多的事情发生。 Netbeans配置为调试器端口9000.MAMP中没有Zend优化。

我跟着这个:http://netbeans.org/kb/docs/php/configure-php-environment-mac-os.html#installEnableXdebughttp://www.xdebug.org/docs/installhttp://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。我终于想到从/ etc读取PHP.INI所以我将MAMP php.ini复制到那里的php.ini,从而在那里添加了xdebug.se,localhost,端口9000等信息。之后,当我执行PHP -m时,xdebug IS被列出,但我仍然遇到NetBeans问题。奇怪的PHP -i显示版本5.2.10,而不是上面的5.2.11!

我也试过这个,为idekey添加“netbeans-xdebug”:Why does xdebug not establish connection with NetBeans?

为什么PHP_INFO()似乎在../ MAMP / ...下找到我的PHP.INI文件而不是在从/ etc读取它时进行PMP -m?

如何让PHP始终在MAMP下找到INI文件,这样我就不必使用两个PHP.INI文件来使用PHPINFO()和PHP -m来工作?

如果xDebug似乎已正确安装但仍无法在NetBeans中运行,我如何解决NetBeans问题?这需要双php.ini吗?我可以编译xdebug错了,怎么知道?在xdebug / php中使用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

4 个答案:

答案 0 :(得分: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?

保持操作系统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?

下载包含xdebug扩展程序的最新版MAMP,并将其添加到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似乎不喜欢默认设置。

答案 1 :(得分:0)

我从Komodo下载了错误的xDebug.so,不知怎的,我自己的构建也没有用。再次下载,现在可以了。哇,这花了我几个小时,没有人可以帮忙! / PM

答案 2 :(得分:0)

我检查并重新检查了所有设置和设置说明,但看​​起来XDebug似乎无法正常工作。最后我重新启动了我的Mac,它神奇地开始工作。也许这会帮助与我处于同一位置的人。

答案 3 :(得分:0)

这就是为我工作的

brew install php55-xdebug

  • 抓住ini路径,然后将以下内容粘贴到最后一个 php -i | grep 'Configuration File'
    vim /usr/local/etc/php/5.5/php.ini

  • 添加以下内容

    的zend_extension = “/ usr / lib中/ PHP /扩展/无调试非ZTS-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