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

标签 php ftp xdebug remote-debugging phpstorm

要事第一:

  • 服务器是在 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 已正确配置,因为一切都在我的本地主机上运行。

enter image description here

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

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

Step1

第 2 步 - 选择 FTP

Step2

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

Step 3

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

Setting FTP connection and Advanced - Passive mode

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

Run/Debug configuration

第 6 步 - 服务器和验证远程环境,此处弹出警告:未加载调试扩展

Servers and validate remote enviroment

第 7 步 - Php ini 配置。

Php ini configuration.

最后……

1) 我必须在客户端的远程服务器 上做些什么才能使它正常工作吗? 也许也在那里安装 XDEBUG,也许你会觉得这个问题很愚蠢,相信我,我已经在这上面浪费了 3 天,我对租约感到有点沮丧。所以请帮忙。

2) 我很乐意上传更多屏幕截图或回答您可能遇到的任何问题,以帮助我解决问题。我知道这很简单,但我为此伤脑筋。

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

最佳答案

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

1) 你网络外的服务器上的 xdebug.remote_host 将成为你的 IP 地址,就像你访问 whatismyip.com 时得到的一样。此 IP 地址很容易更改。 (如果您的家庭 IP 变化很大,您可以使用来自某些提供商的动态 DNS 和主机名而不是 IP)。无论如何,当 XDebug 在远程服务器上启动时,它会成为寻找在笔记本电脑上运行的 XDEBUG 服务器的客户端 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),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20830518/

相关文章:

php - 如何通过单个查询检查多个 ID 是否存在

linux - 有没有办法阻止我的 IDE 在部署后更改文件的所有者/组?

java - 如何知道FTP欢迎消息的结束

ios - 如何在swift 3中下载FTP文件

c++ - DBGP 实现 C/C++

php - 使用 PHP 从 Azure 网站运行 Azure WebJob

PHP 7.2 mysqli 无法使用没有 SSL 的身份验证插件 sha256_password 连接到 MySQL

curl - 如何通过CURL在Vagrant的SSH中触发Xdebug?

php - 如何查询列中具有特定值的最新记录

PHP 在异常堆栈跟踪中缺少函数参数