远程服务器未连接 Xdebug

2022-08-30 09:23:04

我希望使用不同计算机的团队能够在远程服务器上调试 PHP,但我很难让 Xdebug 在 NetBeans 7.0.1 中工作。我尝试了许多在线提示,但无济于事。

为了记录在案,我已经成功地在运行WampServer的Windows 7计算机上本地安装了Xdebug。因此,我可以在 NetBeans 中调试带有断点的 PHP,前提是我将“项目属性->运行配置->运行为”属性设置为“本地网站”。但是,如上所述,我的目标是在远程网站上的 NetBeans 中进行调试。

我的服务器是 Ubuntu 11.04 机器。我使用了 http://www.xdebug.org/find-binary.php 的输出将正确的二进制文件放在机器上。我已经修改了我能找到的所有文件(在和目录中)以包含以下行:php.iniphp5/apache2php5/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)。当我点击停止按钮时,我得到Xdebug在X秒内没有检测到任何连接。原因可能是xdebug未安装或未正确配置

也许我在这里混淆了本地设置和服务器设置?一个帖子说应该设置为运行NetBeans的计算机的IP,但我希望一个团队能够使用具有不同IP地址的计算机进行调试。问题可能是端口9000,但我已检查它是否未被阻止。xdebug.remote_host

任何可以澄清这一点的帮助将不胜感激!


答案 1

运行 PHP(和 XDebug)的服务器需要能够连接到您的工作站/桌面。

Diagram

因此,您需要通过告诉服务器连接到特定IP地址()或自动“连接回来”()来相应地设置服务器。不过,后者有一些安全隐患。这些在手册中进行了概述。xdebug.remote_hostxdebug.remote_connect_back


答案 2

对我来说,不起作用。我所做的是在我的客户端计算机上设置ssh端口转发。xdebug.remote_connect_back = On

远程计算机上的 xdebug 配置:

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_autostart=1
xdebug.remote_handler = dbgp
xdebug.remote_mode = req

客户端计算机上的转发端口:

ssh -g -N -lusername -R9000:127.0.0.1:9000 [remote.host.ip]

必须允许远程计算机上的 shell 访问。


推荐