【发布时间】:2011-12-24 09:17:45
【问题描述】:
我希望一个使用不同计算机的团队能够在 远程 服务器上调试 PHP,但我很难让 Xdebug 在 NetBeans 7.0.1 中工作。我尝试了许多在线技巧,但都无济于事。
作为记录,我已在运行 WampServer 的 Windows 7 机器上成功安装了 Xdebug 本地。所以我可以在 NetBeans 中使用断点调试 PHP,前提是我将 Project Properties->Run Configuration->Run As 属性设置为 Local Web Site .但是,如上所述,我的目标是在 远程网站 上在 NetBeans 中进行调试。
我的服务器是 Ubuntu 11.04 机器。我已经使用http://www.xdebug.org/find-binary.php 的输出将正确的二进制文件放在机器上。我已经修改了我能找到的所有php.ini 文件(在php5/apache2 和php5/cli 目录中)以包含这些行:
zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
如果我查看phpinfo.php 网页,它会显示:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Xdebug v2.1.2, Copyright (c) 2002-2011, by Derick Rethans
所以 Xdebug 似乎安装正确。不过,当我尝试在 NetBeans 中进行调试时,我会收到无休止的状态栏消息 Waiting For Connection (netbeans-xdebug)。当我点击停止按钮时,我得到 X 秒内未检测到来自 xdebug 的连接。原因可能是 xdebug 未安装或配置不正确。
也许我在这里将本地设置与服务器设置混淆了? A post 说 xdebug.remote_host 应该设置为运行 NetBeans 的机器的IP,但我希望团队能够使用具有不同 IP 地址的机器进行调试。问题可能是端口 9000,但我检查过它没有被阻塞。
任何可以澄清这一点的帮助将不胜感激!
【问题讨论】:
-
使用
xdebug.ide_key并将其设置为一些复杂的值应该用作密码iirc。 -
多年后再次遇到此问题,该问题是由阻止运行 Xdebug 的服务器联系我的开发计算机的防火墙设置引起的(请参阅@Linus Kleen 的回答)。所以检查你的防火墙。
-
是的,最终需要某种 NA(P)T 才能将来自开发服务器的传入外部连接转发到局域网中的计算机。