2

我现在已经尝试了几个小时让 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 -mi 中尝试时,没有看到列出的 xdebug。我终于发现 PHP.INI 是从 /etc 读取的,所以我将 MAMP php.ini 复制到 php.ini 那里,因此在那里添加了 xdebug.se、localhost、端口 9000 等信息。之后,当我执行 PHP -m 时也会列出 xdebug,但我仍然遇到 NetBeans 问题。奇怪的是 php -i 显示的是 5.2.10 版本,而不是上面的 5.2.11!

我也试过这个,为 idekey 添加“netbeans-xdebug”:为什么 xdebug 不与 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

4 回答 4

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?

下载最新版本的 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 似乎不喜欢默认端口。

于 2011-10-22T06:24:34.027 回答
0

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

于 2010-01-06T14:03:04.147 回答
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/extensions/no-debug-non-zts-20100525/xdebug.so"

    xdebug.default_enable=1
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_host=localhost
    xdebug.remote_port=9001
    xdebug.remote_autostart=1

于 2014-10-14T09:18:49.820 回答
0

我检查并重新检查了所有设置和设置说明,但 XDebug 似乎仍然不起作用。最后,我重新启动了我的 Mac,它神奇地开始工作。也许这会帮助与我处于相同位置的人。

于 2013-05-22T11:18:15.003 回答