macos xDebug 似乎已安装,但无法与 NetBeans 连接
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/2002481/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
xDebug seems OK installed, but not connecting with NetBeans
提问by Petter Magnusson
I have now tried for hours getting xDebug (2.0.5 compiled from source) to work on my MacBook OS X with NetBeans 6.8. I have installed MAMP and am running a small PHP (5.2) test program with it, no problem. But when I try to debug I get this text in Netbeans: "Waiting for connection (netbeans-xdebug)" and nothing more happens. Netbeans is configured for Debugger Port 9000. No Zend Optimization in MAMP.
我现在已经尝试了几个小时让 xDebug(从源代码编译的 2.0.5)在我的 MacBook OS X 上使用 NetBeans 6.8。我已经安装了 MAMP 并且正在运行一个小的 PHP (5.2) 测试程序,没问题。但是当我尝试调试时,我在 Netbeans 中得到了这样的文本:“Waiting for connection (netbeans-xdebug)”,然后再没有发生。Netbeans 配置为调试器端口 9000。MAMP 中没有 Zend 优化。
I have followed this: http://netbeans.org/kb/docs/php/configure-php-environment-mac-os.html#installEnableXdebugand http://www.xdebug.org/docs/installand http://forums.netbeans.org/topic1513-0-asc-0.htmletc
我遵循了这个: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等
Here is part of my php.ini
这是我的 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"
I have read a lot of installation instructions etc and phpinfo show that xDebug is installed OK as V.5.2.11 (seen via "Open Start Page" in MAMP). However when i try in terminal PHP -m i do not see xdebug listed. I finally figured that PHP.INI is read from /etc so I copied the MAMP php.ini to php.ini there, thus added the xdebug.se, localhost, port 9000 etc info there. After that xdebug IS listed when I do PHP -m too, but I STILL get the NetBeans problem. Strange enough php -i shows version 5.2.10, not 5.2.11 as above!
我已经阅读了很多安装说明等,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!
I also tried this, adding the "netbeans-xdebug" for idekey: Why does xdebug not establish connection with NetBeans?
我也试过这个,为idekey添加了“netbeans-xdebug”:为什么xdebug不与NetBeans建立连接?
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 ?
为什么 PHP_INFO() 似乎在 ../MAMP/... 下找到了我的 PHP.INI 文件,而不是在从 /etc 读取时执行 PMP -m ?
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 下找到 INI 文件,这样我就不必使用两个 PHP.INI 文件来设置 PHPINFO() 和 PHP -m 才能工作?
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 似乎已正确安装,但在 NetBeans 中仍然无法正常工作,我该如何解决 NetBeans 问题?需要双 php.ini 的东西吗?难道我编译错了xdebug,怎么知道?xdebug / php 中有 php 版本吗?如何检查?
Here is a part of the result from php -i:
这是 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
下午
采纳答案by Petter Magnusson
I downloaded the wrong xDebug.so from Komodo and somehow also my own build was no good. Downloaded again and now its OK. Wow, this took me MANY hours, and no one could help either! /PM
我从 Komodo 下载了错误的 xDebug.so,不知何故我自己的构建也不行。再次下载,现在正常了。哇,这花了我很多小时,也没有人能帮上忙!/下午
回答by xmarcos
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()
uses MAMP's PHP binary, while CLI uses your OS one.
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?
Leave the OS PHP untouched so you don't have problem upgrading and tweak the one bubled with MAMP as you need.
保持操作系统 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?
Download the latest version of MAMP which includes xdebug extension compiled and add this to your php.ini
.
下载最新版本的 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"
I use port 9001 as OSX doesn't seem to like the default.
我使用端口 9001,因为 OSX 似乎不喜欢默认端口。
回答by Ollie Harridge
I checked and re-checked all the settings and setup instructions and still it appeared that XDebug didn't work. In the end I restarted my Mac and it magically started working. Maybe this will help someone in the same position as me.
我检查并重新检查了所有设置和设置说明,但 XDebug 似乎仍然不起作用。最后我重新启动了我的 Mac,它神奇地开始工作了。也许这会帮助与我处于相同位置的人。
回答by ken
This is what working for me
这对我有用
brew install php55-xdebug
brew install php55-xdebug
grab the ini path, then paste the following to the last
php -i | grep 'Configuration File'
vim /usr/local/etc/php/5.5/php.ini
add the following
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
获取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