【问题标题】:Debug remote server [PHP app] on my local machine [PhpStorm+Xdebug]在我的本地机器上调试远程服务器 [PHP 应用程序] [PhpStorm+Xdebug]
【发布时间】:2020-02-14 18:19:18
【问题描述】:

我想调试远程服务器(AWS EC2 Ubuntu),其中有一个 PHP 应用程序。我在我的 Windows 机器上本地使用 PhpStorm。我无法在服务器上调试应用程序。

我用谷歌搜索了很多,找到了很多解释,但卡住了。我已经在服务器和本地安装了 Xdebug。我已经在 PhpStorm 中设置了 SFTP 连接,所以它有服务器并且可以同步。 PhpStorm->Settings->Languages & Frameworks->PHP->Debug - [Validate] 表示一切正常,当我选择远程 Web 服务器时

当我在 PhpStorm IDE 中单击开始侦听 PHP 调试连接时,我可以使用断点调试 PHP 代码。这些文件与我的服务器上的文件完全相同。但是现在什么都没有发生。

【问题讨论】:

  • 您的远程服务器是如何连接到 IDE 工作站的?是否可以通过 TCP 9000 端口(默认)从您的服务器连接到 IDE?
  • 您最好的选择是使用 ssh 上的隧道将端口从服务器转发到您的计算机,根据您使用的操作系统,有许多可用的隧道软件

标签: php amazon-ec2 phpstorm xdebug


【解决方案1】:

首先; xdebug 应该可以回拨;即运行phpStorm的本地计算机。

这是一个快速清单

远程可以直接连接到本地吗?远程主机能否连接本地主机的xdebug端口(一般为9000)?

如果是;

xdebug 配置是否正确?这是远程和本地之间直接连接的示例:

xdebug.remote_enable = 1

xdebug.remote_port = 900

xdebug.remote_connect_back = 开启

如果没有;

应该有一种远程连接回本地的方法。一种选择是使用 ssh 隧道。为了那个原因;远程的 xdebug 配置应相应修改;喜欢:

xdebug.remote_host=127.0.0.1

xdebug.remote_port = 9001

xdebug 现在尝试连接它自己的端口; 9001 这实际上是到您的本地主机的隧道; 9000端口

您可以在 nix 上使用 ssh 创建隧道;腻子赢了

此外,xdebug 日志文件是调试问题必不可少的;确保 xdebug 正在创建日志;检查它们;示例:

xdebug.remote_log = /var/tmp/xdebug.log

所有这些都设置好之后;激活 PHPStorm 的监听模式并开始调试。

还有;记住documentation可能会很好

【讨论】:

    猜你喜欢
    • 2018-02-11
    • 2020-11-22
    • 2018-10-19
    • 2019-04-28
    • 2013-07-13
    • 2011-08-06
    • 2015-07-04
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多