php - xDebug 似乎安装正常,但无法与 NetBeans 连接

标签 php macos netbeans xdebug

我现在已经尝试了几个小时让 xDebug(从源代码编译的 2.0.5)在装有 NetBeans 6.8 的 MacBook OS X 上运行。我已经安装了 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 列出。我最终发现 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”: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

结果 下午

最佳答案

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 似乎不喜欢默认端口。

关于php - xDebug 似乎安装正常,但无法与 NetBeans 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2002481/

相关文章:

php - PHP 和 MySQL 中的短 URL 出站链接跟踪

php - 登录 - 用户名和电子邮件

macos - cocoa:以退格键作为等效键的菜单栏项

java - 在 Java 中使用 Joda 查找两个日期之间的差异

php - Composer require-dev 在不同的包中需要依赖 require-dev

php - 警告 : Missing Argument 1

macos - 如何从 MAC OS X 中删除应用程序

python - 无法在 Mac 上创建带有子进程的新控制台

java - 如何在 netbeans 中测试 java web 应用程序的代码覆盖率?

php - 从代码格式中排除代码部分