我现在已经尝试了几个小时让 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#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 -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