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)的主要内容,如果未能解决你的问题,请参考以下文章
PHPSTORM2020.1+Xdebug2.9.8远程调试