等待连接(netbeans的-Xdebug的)MAMP OS X(Waiting For Conne

2019-08-17 06:09发布

前言

几个小时后,我一直无法得到的NetBeans连接到Xdebug的。 几个月前,从旧版本MAMP来MAMP PRO升级后,调试完美无缺。 一个星期前就开始变得古怪。 这样看来连接,但在断点不会停止。 重新启动的NetBeans(V7.0.1)和Apache有时得到它短时间的工作。

我真的需要它固定的,所以我安装了最新版本MAMP PRO(2.1.2)的。 现在我得到的等待连接的消息,直到永远。

测试我做过

虽然正在等待连接的消息是有与运动吧,我看,看它是否在听。 它是...

# lsof -i -n -P |grep 9001
java  6496  tim  230u  IPv6 0xffffff80239d8190      0t0    TCP *:9001 (LISTEN)

在NetBeans中的PHP配置我解释设置为:/Applications/MAMP/bin/php/php5.4.10/bin/php

执行以下操作:

# /Applications/MAMP/bin/php/php5.4.10/bin/php -i | grep xdebug

告诉我,Xdebug的运行一样的phpinfo()

我有(多次)证实了我的端口号到处都一样。 我曾尝试端口9000和9001。

xdebug.log然后发起从所述浏览器会话,而不在NetBeans产生启动调试会话做尾:

I: Connecting to configured address/port: localhost:9001.
E: Could not connect to client. :-(

随着连接消息的等待从浏览器发起会话,我得到这个在日志中:

: Connecting to configured address/port: localhost:9001.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///Users/tim/MAMPSites/facts.tvd.us/htdocs/sendfile/tim.php" language="PHP" protocol_version="1.0" appid="7279" idekey="netbeans-xdebug"><engine version="2.2.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

我的php.ini文件有以下几点:

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.3.20/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
xdebug.remote_enable=on
xdebug.remote_log="/var/log/xdebug.log"
xdebug.remote_host=localhost
xdebug.remote_handler=dbgp
xdebug.remote_port=9001
xdebug.idekey="netbeans-xdebug"

更新

我只注意到上述lsof命令显示的NetBeans监听IPV6。 强制的Java版本(NetBeans)为使用IPv4没有帮助。

launchctl setenv JAVA_TOOL_OPTIONS -Djava.net.preferIPv4Stack=true

我发现提出了一个测试,以确认Xdebug的正常工作后。 创建一个PHP文件:

<?php
$address = '127.0.0.1';
$port = 9000;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);
?>

在命令行中运行它,并与在URL的末尾以下浏览器加载任何页面:

?XDEBUG_SESSION_START=nb

如果输出类似“建立连接:资源ID#5”,Xdebug的正常工作。 就这样,我重新安装的Java和NetBeans。 我告诉NetBeans的不导入我现有的喜好......仍然没有连接。

UPDATE2

我安装了phpStorm IDE的Mac。 我了解了足够它获得调试与我现有的甲基苯丙胺和Xdebug安装运行。 我认为,这证实了这个问题是与NetBeans。

在这一点上,得到这个工作似乎是不可能的。 :(

Answer 1:

我问了同样的事情,得到了这个相当不错的答案: 如何跟踪的PHP线/方法的每一行/块的执行时间? ,那旁边我有这个问题的答案也与相同内容的当前正在运行的其他问题。

上(东西我已经收集了其他SO帖子在我自己的研究这个问题)的一些其他注意事项:

  1. 端口可能还9001(似乎对某些人工作,而9000没有)。
  2. 切换到PHPStorm IDE是解决这一问题(如PHPStorm包括了完美运行Xdebug的话),一个真正的替代品。
  3. 通过向导(下载Xdebug的新版本http://xdebug.org/wizard.php ),如果你按照指示也许你会很幸运。
  4. 关闭防火墙可能的帮助。
  5. 添加为php.ini: xdebug.idekey=netbeans-xdebug
  6. 看看你有一个xdebug.ini文件和XDebug的相关的php.ini行添加到该文件。
  7. 你必须取消注释的zend_extension线(即删除;在其begninning),所以Xdebug的其实是加载。
  8. 确保Xdebug的加载,调用phpinfo()函数在PHP文件(只是要确定)。


Answer 2:

如果在你的项目文件夹中的index.php文件的Xdebug只连接,因此请确保您有一个。



Answer 3:

现在对我的作品。 我安装了LAMP。 我按照上面所有的答案修改,开始的Apache2,现在它飞......我很快乐......有一段时间我想切换到phpstorm,但我重新考虑......调整多一点...等瞧。 它的工作。

在这里我有什么在php.ini

zend_extension = /usr/lib/php5/20121212/xdebug.so

xdebug.max_nesting_level = 250
xdebug.auto_trace=On
xdebug.remote_enable=On
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_log="/var/log/xdebug.log"
xdebug.trace_output_dir=/var/www/AMRO
xdebug.idekey="netbeans-xdebug"


Answer 4:

干净的下载和安装的XAMPP工作的NetBeans,Xdebug的工作除了在断点不会停止。 更改的php.ini:xdebug.remote_enable = 1(0)和Xdebug发挥预期!



文章来源: Waiting For Connection (netbeans-xdebug) MAMP OS X