使用XDebug进行PHP远程调试

4

我收到了很多关于如何在远程服务器上使用xdebug和eclipse调试php文件的问题。

我的目标是: 我有一个远程服务器(带有WAMPP(appache(端口8502),php,mysql(端口8501)等)),我想使用来自本地PC的Eclipse PDT调试php文件。

我已经准备好以下内容

  • 在我的本地PC上安装了Eclipse PDT(Build id:
    20100617-1415)
  • 在远程服务器上安装并激活了xdebug (可在(假设)111.111.111.111:8502上使用),并在php.ini中进行了以下配置

[XDebug]
zend_extension = C:\TYPO3_4.4.6\php\ext\php_xdebug-2.1.0-5.3-vc6.dll
xdebug.profiler_output_dir = "C:/xampp/tmp/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%p"
xdebug.profiler_enable = 0
xdebug.profiler_append=0
xdebug.extended_info=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=ECLIPSE_DBGP
xdebug.remote_log="C:\TYPO3_4.4.6\tmp\xdebug\xdebug_remote.log"
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0

  • 在Eclipse中,我在"窗口- PHP- PHP服务器"中添加了服务器,URL为"http://111.111.111.111:8502",路径映射-服务器上的路径为:"C:\TYPO3_4.4.6\htdocs",工作区中的路径为:"/debug_test"(我创建了一个名为“debug_test”的PHP项目)。

  • 我还将PHP-调试更改为以下内容:

    • PHP-Debugger:XDebug
    • 服务器:111.111.111.111
    • 未定义PHP可执行文件
  • 接下来,我添加了调试配置(PHP Web页面):

    • 服务器调试器:XDebug
    • PHP服务器:111.111.111.111
    • 文件:/debug_test/debug.php
    • 关闭第一行的断点:关闭
    • 自动生成:开启
  • 我在远程服务器的C:\TYPO3_4.4.6\htdocs\debug_test\目录下创建了debug.php文件,并将其放入我的PHP项目(“debug_test”)中。

如果我现在运行“调试”并选择我的配置文件,Web页面会弹出(在外部浏览器中),URL为http://111.111.111.111:8502/debug_test/debug.php?XDEBUG_SESSION_STOP_NO_EXEC=ECLIPSE_DBGP&KEY=129657398681515,页面加载完成后,就像普通页面一样,但没有办法进行调试。即使我切换到PHP Debug - View并插入任何断点或类似的东西,也没有像调试一样的东西。
我如何才能使用xdebug和eclipse pdt进行远程调试?
干杯, Cheeesi

1
好问题,我也想知道答案。 - Dmitri
1个回答

0

你确定你的XDebug-Client / PC可以通过127.0.0.1从你的服务器访问吗?

因为如果我理解正确,你的服务器没有安装在你的PC上。另一方面,我对你如何设置你的XAMPP系统感到好奇。因为通常所有的东西都是本地安装的。

此外,浏览器的行为也很重要。如果通过Eclipse调用XDebug会话后,你的网站完全加载完成,那么你在Eclipse中的XDebug-Client无法连接到你的服务器。如果你看到浏览器试图加载页面但卡住了,那么你的客户端可能会告诉服务器启动一个XDebug会话,但你的服务器上的XDebug无法连接回来。

你指定的服务器端口8502也有点奇怪,但根据相应的配置可能是正确的。

最好的祝福

Raffael

编辑:首次尝试时,你应该启用第一行的断点


嗨Raffael,感谢您的快速回复!您是否认为我的PC无法被服务器访问,因为在XDebug配置中,远程主机设置为127.0.0.1? XAMPP(实际上是随TYPO3安装程序一起提供的WAMPP)已安装在服务器上。 通过端口8502可以通过Internet访问服务器。如果我使用上述调试配置调用调试,则浏览器会完全加载该站点。是否有可能查看Eclipse是否可以访问服务器上的xdebug组件? - Cheeesi
嘿Cheesi...看,127.0.0.1和localhost是一样的,例如如果Apache运行在与您的Eclipse相同的PC和操作系统上,则会需要这个。在您的情况下,由于您实际上正在使用远程服务器,127.0.0.1不能是正确的IP地址。我猜您可以使用Putty或类似工具登录到服务器。然后尝试使用netstat -atpn查找服务器知道您的IP地址。所以在这种情况下,您的服务器无法联系到您。但是考虑到您的症状,似乎您也无法访问服务器。如果没有管理员告诉您这样做,请尽量避免使用8502端口。最好了解一下原因。 - Raffael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接