【问题标题】:Xdebug and Netbeans are not communicating with each otherXdebug 和 Netbeans 没有相互通信
【发布时间】:2012-12-02 13:22:04
【问题描述】:

我花了几天时间上网寻找问题的答案。我已经尽我所能,但迄今为止未能成功解决这个问题。 Netbeans 不断提供等待连接 (netbeans-xdebug)

我正在使用以下软件:

  • XAMPP 版本 1.8.1。
  • Windows 7
  • Netbeans IDE 7.2.1
  • Xdebug 2.2.1

我通过 xdebug.org 站点 (http://xdebug.org/wizard.php) 的向导安装了最新版本。 Xdebug 正在根据 phpinfo() 工作。我的浏览器(Firefox 17.0.1)中的 HMTL 输出显示了 xdebug 代码。但是,这不会传回给 netbeans。通过命令提示符(运行 -> cmd.exe)使用 Netstat 显示端口 9000 上有一个 TCP 连接。但是,在 Netbeans 中没有报告任何内容。

我尝试了几种不同的选择,例如:

  • 安装类似的 IDE,Eclipse PDT。 Eclipse 显示 Xdebug 是
    在职的。但是,因为 Eclipse 缺少我需要的功能,所以我
    想使用Netbeans。
  • 在 Ubuntu 12.04 LTS 上安装 Netbeans。
    还是同样的问题。 Netbeans 不工作(等待
    联系)。浏览器中的输出也显示 Xdebug 正在运行。

【问题讨论】:

    标签: xampp netbeans-7 xdebug


    【解决方案1】:

    每当我在新的 Linux 机器上安装:“php xdebug”和 netbeans
    我都会运行这些简单的步骤,并且我总是设法在 netbeans 上纠正 xdebug 的集成。
    所以以你提供的数据,我只能帮你解决,你问题的一半。
    允许您在 Linux 机器上连接

    使用 pecl 安装:

    # apt-get install php5-dev php-pear
    # pecl 安装 xdebug

    或者直接安装:

    # apt-get install php5-xdebug

    找到图书馆:

    # find / -name 'xdebug.so'
    /usr/lib/php5/20090626+lfs/xdebug.so

    编辑 phi.ini 文件:

    ...

    zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
    xdebug.remote_enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000

    ...

    在你的情况下重启网络服务器:Apache

    $ /etc/init.d/apache2 重启


    根据你发布的内容:

    在 Ubuntu 12.04 LTS 上安装 Netbeans。

    我对发行版“.deb”使用了安装方法“apt-get”。 如果您使用的是发行版,“.rpm”可以用“yum”做同样的事情

    许多这些命令在 xampp 中肯定得到了简化。
    但是如果你从控制台运行这个命令不会影响最终结果。


    关于 Windows 机器和 Linux 机器的另一个重要说明,
    您应该检查您的防火墙规则是否允许建立从 netbeans 到 xdebug 的连接。

    【讨论】:

    • 您好,谢谢您的回复。我让它在 Windows 中工作,但是我让它工作的方式很奇怪。我必须将端口设置为“9001”,将代理设置为“localhost”。这很奇怪,因为 php.ini 中的端口设置为 9000。
    • 我会给 Ubuntu 一个新的尝试。顺便提一句。我通过 Tasksel 而不是 XAMPP 安装了 LAMP,并按照 Xdebug 向导站点上的说明进行操作。我编辑了 xdebug.ini ($ sudo gedit /etc/php5/apache2/conf.d/xdebug.ini) 文件,就像你对 php.ini 所做的那样。我在文件中添加了“xdebug.idekey=netbeans-xdebug”。起初我没有在 Ubuntu 上安装 UFW,所以这不是问题。我现在会这样做,因为防火墙始终是一种很好的安全措施。
    • Ubuntu 上的 Netbeans 和 xdebug 现已启动并运行。与 Windows 相同的解决方案,将端口设置为 9001 就可以了。很奇怪。
    • 干得好!在 Windows 上,端口肯定保留给另一个进程您可以尝试使用TCPView 工具识别冲突,或者使用netstat 从控制台识别冲突,或者想要找到问题的数学答案可以使用Wireshark 查看每个数据包处理
    • 据我所见,与端口没有冲突。不过奇怪的是,将netbeans项目设置到另一个端口就解决了这个问题。
    【解决方案2】:

    我知道这是旧的,但对于使用 Ubuntu 的人来说这可能会有所帮助。

    OS Version = Ubuntu 14.04.3 LTS; Codename: trusty
    PHP Version = PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul  2 2015 15:17:32) 
    Apache Version = Server version: Apache/2.4.7 (Ubuntu)
    

    程序

    1. 为 php5 安装 xdebug
    sudo apt-get install php5-xdebug
    
    1. 打开 php.ini 并在下面添加以下行(通常是 sudo vim /etc/php5/apache2/php.ini)
    xdebug.remote_enable=On;
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000;
    xdebug.remote_handler="dbgp"; 
    
    1. 重启 apache,一切顺利
    sudo service apache2 restart
    

    注意 1:我没有尝试在没有用于 xdebug 的 firefox 插件的情况下执行此操作,所以如果在执行上述过程后仍​​然无效,请下载 firefox 插件Easy Xdebug

    注2:我没有接触Netbeans的PHP配置

    注意 3:我没有接触 xdebug.ini

    【讨论】:

    • 感谢您的回答。这是非常有据可查的。不久前我确实已经解决了它,但正如你提到的,它可能对其他人有所帮助。
    猜你喜欢
    • 2014-05-17
    • 2021-04-25
    • 2012-09-03
    • 2011-05-30
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2017-01-28
    • 2012-10-03
    相关资源
    最近更新 更多