php – 等待连接(netbeans-xdebug)MAMP OS X.

前端之家收集整理的这篇文章主要介绍了php – 等待连接(netbeans-xdebug)MAMP OS X.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
前言

几个小时后,我无法让NetBeans连接到xdebug.几个月前,从旧版本的MAMP升级到MAMP PRO后,调试工作完美无瑕.一周前它开始变得越来越好.它看似连接但不会停在断点处.重启NetBeans(v7.0.1)和apache有时会让它工作很短的时间.

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

测试我做了

当等待连接消息与移动栏一起出现时,我会查看它是否正在收听.它是…

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

在NetBeans PHP config中,我将解释器设置为:
/Applications/MAMP/bin/PHP/PHP5.4.10/bin/PHP

执行以下操作:

  1. # /Applications/MAMP/bin/PHP/PHP5.4.10/bin/PHP -i | grep xdebug

告诉我xdebug和PHPinfo()一样运行

我(很多次)确认我到处都有相同的端口号.我尝试过端口9000和9001.

在xdebug.log上执行尾部操作然后从浏览器启动会话而不在NetBeans中启动调试会话会产生:

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

通过等待连接消息并从浏览器启动会话,我在日志中得到了这个:

  1. : Connecting to configured address/port: localhost:9001.
  2. I: Connected to client. :-)
  3. -> <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>
  4.  
  5. -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

我的PHP.ini文件包含以下内容

  1. [xdebug]
  2. zend_extension="/Applications/MAMP/bin/PHP/PHP5.3.20/lib/PHP/extensions/no-debug-non-zts-20090626/xdebug.so"
  3. xdebug.remote_enable=on
  4. xdebug.remote_log="/var/log/xdebug.log"
  5. xdebug.remote_host=localhost
  6. xdebug.remote_handler=dbgp
  7. xdebug.remote_port=9001
  8. xdebug.idekey="netbeans-xdebug"

更新

我刚才注意到上面的lsof命令显示了NetBeans在ipV6上的监听.强制java(NetBeans)使用ipV4没有帮助.

  1. launchctl setenv JAVA_TOOL_OPTIONS -Djava.net.preferIPv4Stack=true

我发现了一篇帖子,建议进行测试以确认xdebug是否正常工作.创建一个PHP文件

  1. <?PHP
  2. $address = '127.0.0.1';
  3. $port = 9000;
  4. $sock = socket_create(AF_INET,SOCK_STREAM,0);
  5. socket_bind($sock,$address,$port) or die('Unable to bind');
  6. socket_listen($sock);
  7. $client = socket_accept($sock);
  8. echo "connection established: $client";
  9. socket_close($client);
  10. socket_close($sock);
  11. ?>

从命令行运行它并在您的浏览器中加载任何页面,并在URL的末尾添加以下内容

  1. ?XDEBUG_SESSION_START=nb

如果它输出类似“建立连接:资源ID#5”,xdebug正常工作.有了这个,我重新安装了Java和NetBeans.我告诉NetBeans不要导入我现有的首选项……仍然没有连接.

UPDATE2

我安装了适用于Mac的PHPStorm IDE.我学到了足够的知识,可以使用我现有的MAMP和xdebug设置来运行调试器.我认为这证实了NetBeans的问题.

在这一点上,让这项工作似乎不可能.

猜你在找的PHP相关文章