PHPStorm、Xdebug 和远程调试(在 phpstorm 中使用 FTP)

Posted

技术标签:

【中文标题】PHPStorm、Xdebug 和远程调试(在 phpstorm 中使用 FTP)【英文标题】:PHPStorm, Xdebug and remote debugging (using FTP in phpstorm) 【发布时间】:2014-01-16 19:20:50 【问题描述】:

第一件事:

Server 是在 SunVirtualBox x86 上的 Ubuntu 上运行的 Apache 调试服务器是 XDebug 使用 phpstorm 从 FTP 下载文件

PHP版本是

PHP 5.4.9-4ubuntu2.4 (cli) (built: Dec 12 2013 04:26:30) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

重要提示XDebug 配置正确,因为我的本地主机上一切正常。

但我无法设置远程调试,这里是我制作的所有图像和步骤,请帮助和建议我。

第 1 步 - 基本点击从现有文件创建新项目。

第 2 步 - 选择 FTP

第 3 步 - 文件系统上的项目设置

第 4 步 - 设置 FTP 连接和高级 - 被动模式

第五步 - 运行/调试配置,选择PHP远程调试,输入Ide key: PHPSTORM

第 6 步 - 服务器并验证远程环境,此处弹出 WARNING: No debug extension loaded

第 7 步 - Php ini 配置。

所以最后......

1) 我必须在 我的客户端的远程服务器 上做些什么才能让这件事正常工作吗? 也许也在那里安装 XDEBUG,也许你会觉得这个问题很傻,相信我我已经失去了 3 天的时间,而且我有点沮丧地说租约。所以请帮忙。

2) 我很乐意上传更多屏幕截图或回答您可能遇到的任何问题,以帮助我。我知道这很简单,但我对此感到头疼。

再次请大家帮忙,我确实通过了 15 页关于 PHPSTROM 的远程调试,但所有这些都不够精确。就像您在第一张图片中看到的那样,在我的本地主机上一切正常。

【问题讨论】:

所以你可以在本地主机上调试这段代码,而不能在你下载源代码的服务器上调试?要使用 XDebug,必须在您访问的服务器上安装和配置它。 1) 是的,xdebug(或 Zend Debugger)必须安装在执行代码的同一环境中(在您的情况下——您的远程服务器)。否则 IDE 将如何知道执行某些操作的方式和时间? 2) 为什么将rirads.com/master-schedule 作为 host 字段(步骤 6 的屏幕截图)。它应该是您的域名或 IP(此站点的 $_SERVER["SERVER_NAME"] 的内容)。 感谢两位的回答。将在远程服务器上设置和安装 xdebug。将 xdebug.so 放入某个路径并编辑 php.ini 是否足够? 另一个问题也在 php.ini 配置中。属性 xdebug.remote.host 应该是我的本地主机还是远程服务器的 IP 在我的情况下是 rirads.com?我假设远程主机为远程主机所以 rirads.com 或? "property xdebug.remote.host 应该是我的本地主机或远程服务器的 IP 在我的情况下是 rirads.com?" -- 没有 --请参阅文档,因为现在您似乎只是在猜测该属性的作用——xdebug.org/docs/all_settings#remote_host。它应该是运行 PhpStorm 的计算机的 IP。顺便说一句——它应该是xdebug.remote_host(下划线而不是第二个点)。 【参考方案1】:

您应该在 remotedebug 中将调试器的端口设置为 9000,就像在 php.ini 中一样。

【讨论】:

添加更多解释以理解这一点【参考方案2】:

在本地机器上使用 XDebug 和在远程系统上使用 XDebug 的主要区别在于您必须配置两件事:

1) 您的网络外部服务器上的 xdebug.remote_host 将成为您的 IP 地址,例如,如果您访问 whatismyip.com,您会得到什么。这个IP地址很容易改变。 (如果您的家庭 IP 变化很大,您可以使用来自某些提供商的动态 DNS 和主机名而不是 IP)。无论如何,当 XDebug 在远程服务器上启动时,它会成为 CLIENT 寻找您的 XDEBUG SERVER 在您的笔记本电脑上的 9000 端口上运行。

这让许多 XDebug 用户感到困惑。然后导致以下结果:

2) 您必须编辑您的家庭/办公室防火墙(大概这是您在步骤 1 中输入 xdebug.ini 或 php.ini 的 IP 上的流量警察),以便将端口 9000 上的传入流量转发到笔记本电脑的您的家庭/办公室网络上的 IP。

关于这方面的最佳资源是(IMO)这里:http://matthardy.net/blog/configuring-phpstorm-xdebug-dbgp-proxy-settings-remote-debugging-multiple-users/

【讨论】:

以上是关于PHPStorm、Xdebug 和远程调试(在 phpstorm 中使用 FTP)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 phpstorm 和 Xdebug 设置远程调试

PHPSTORM2020.1+Xdebug2.9.8远程调试

使用 PHPStorm 解决 PHPUnit xdebug 远程调试问题

PhpStorm+Xdebug配置单步调试PHP

phpstorm+xdebug 远程调试

phpStorm配置xdebug远程调试