Xdebug 和 Netbeans 没有相互通信

Posted

技术标签:

【中文标题】Xdebug 和 Netbeans 没有相互通信【英文标题】:Xdebug and Netbeans are not communicating with each other 【发布时间】: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 正在运行。

【问题讨论】:

【参考方案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)

程序

    为 php5 安装 xdebug
sudo apt-get install php5-xdebug
    打开 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"; 
    重启 apache,一切顺利
sudo service apache2 restart

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

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

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

【讨论】:

感谢您的回答。这是非常有据可查的。不久前我确实已经解决了它,但正如你提到的,它可能对其他人有所帮助。

以上是关于Xdebug 和 Netbeans 没有相互通信的主要内容,如果未能解决你的问题,请参考以下文章

phpmyadmin 不适用于 xdebug、netbeans 和 xampp

等待连接(netbeans-xdebug)卡住了

无法通过 netbeans 和 xdebug 调试内部页面

使用 Netbeans 8.0 和 xampp 1.8.3 进行 Xdebug

使用 Netbeans 和 XDebug 进行远程 PHP 调试

netbeans 显示“等待连接 (netbeans-xdebug)”