多用户 XDebug 和 PHP 调试

8
如何设置多开发人员的XDebug PHP环境?
我有以下设置:
  • 我有一台安装了Apache和Xdebug的Linux机器,以及我认为是正确的php.ini文件。
  • 我找到了一个Python代理脚本,用于将我的开发人员使用的PDT Eclipse IDE的调用代理到运行在同一Web服务器上的Apache / Xdebug。
  • 我在php.ini中设置了idekey为“ECLIPSE_DBGP”,并为Xdebug设置了自动启动。
来自代理日志信息显示,没有具有“ECLIPSE_DBGP”密钥的服务器,并停止请求。 是否有人遇到过这个问题或者有逐步设置方法使其正常工作? 我已经尽力通过谷歌搜索来解决此问题。
1个回答

19

您可以使用ssh将debug-connection隧道化并返回到您的客户端机器。例如,从您的客户端机器,使用类似以下内容的命令连接到服务器:

您可以使用ssh将debug-connection隧道化并返回到您的客户端机器。例如,从您的客户端机器,使用类似以下内容的命令连接到服务器:

ssh -R 9000:localhost:9000 you@example.com

启动本地调试器,然后开始远程脚本。 Xdebug(在服务器上)现在将建立与其 localhost:9000 的连接,但由于此端口被转发回到您的本地计算机,因此您的(本地)调试器将接收该连接。

如果您在客户端使用 Windows,则可以使用 PuTTY 进行相同的操作。

有关Spectator的更多详细信息,请参见文档


1
虽然它并没有真正回答我的问题,但它仍然是我正在寻找的。Spectator在2年的时间里仍然有效 :) - Eric Drechsel
@eric 是的,关于观察者模式还有一些小bug和可以改进的地方,但是我还没抽出时间来处理。 - troelskn
如果我们正在进行远程调试,那么在php.ini中的xdebug.remotehost行是否应该设置为localhost?https://dev59.com/Nmkw5IYBdhLWcg3wi7Jz?rq=1 - Cymbals
@cymbals - 是的,ssh命令将(远程)本地主机路由回您的调试器客户端。因此从Xdebug的角度来看,它与localhost通信。 - troelskn
@troelskn - 谢谢!这是否会限制一次只能有一个人进行调试,因为每个人都在使用相同的端口? - Cymbals
@cymbals - 是的,您一次只能连接一个。但我想您可以在不同端口上启动多个调试连接(按站点更改xdebug.remote_port设置),然后每个用户都可以 ssh 进入并将该端口转发回他们的本地 9000 端口。但这是真正的问题吗?难道不能轮流使用调试器吗? - troelskn

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