使用XDebug和PHPStorm进行远程调试

22

首先:

  • 服务器是在VMPlayer上运行的Debian中的Apache
  • 主机是Windows 7
  • 调试服务器是XDebug
  • 文件可以直接通过共享文件夹访问

重要提示: XDebug已经正确配置在Apache和我的Win7防火墙上。 我知道这点,因为我可以使用Eclipse进行调试.

所以,我似乎在PHPStorm的基本配置方面失败了。

让我给您提供更多细节:

  • 服务器IP:192.168.56.128
  • 我的主机IP:192.168.56.1

我要调试的文件是index.php:

  • 在我的Win7主机上的位置:C:\dev\sf\Symfony\
  • 在Debian上的位置:\mnt\hgfs\sf\Symfony\
  • URL:192.168.56.128/Symfony/index.php

无论我怎么尝试,我都会得到奇怪的错误消息,比如“等待来自JetBrains PhpStorm的连接…”或者PHPStorm要求我提供Mozilla的profile.ini文件,即使我已经将Chrome配置为默认的Web浏览器。

所以,我只需设置一个新项目,希望有人告诉我配置出了什么问题。

运行/编辑配置/默认/PHP远程调试

  • 服务器:“Debian”
  • IDE密钥:-
  • 在第一行中断:是

服务器

  • 名称:“Debian”
  • 主机:192.168.56.128
  • 端口:80
  • 调试器:Xdebug
  • 使用路径映射:是
  • 已配置一个路径映射:

C:\dev\sf\Symfony => /mnt/hgfs/sf/Symfony (也尝试了 /Symfony - 因为 PHPStorm 不应该关心 /Symfony 上面的任何内容!)

运行 / 编辑配置 / 默认值 / PHP Web 应用程序

  • 服务器:"Debian"
  • 启动 URL:/Symfony
  • 浏览器:Chrome
  • 第一行断点:是

现在我选择:运行 / 调试 ... / 1.index.php

然后我被要求提供 Mozilla 的 profile.ini ... 但我找不到它

它在哪里...?

我已经做到了使 PHPStorm 启动 Chrome。但也许我应该先解决这个问题。那么我如何运行 Firefox?我也在 Eclipse 中使用 Firefox ... 没有 profile.ini 的问题。


4个回答

21

好的,我有三件事情希望与您分享。这不是完整的步骤,而是最初让我感到困惑的关键要素:

  1. 需要配置的重要部分是"Servers""PHP远程调试"

  2. 要配置"PHP远程调试",你必须首先使用左上角的[+]添加一个新数据集。只需单击"PHP R D"按钮获取的面板保持默认设置

  3. 关于虚拟机的绝对路径实际上是指从根目录开始的绝对路径 (\mnt\hgfs\sf\Symfony)。这让我感到困惑,因为我仍然不确定PhpStorm为什么会关心共享文件夹上方的目录级别,但它确实关心。


2
你刚刚通过简洁地说明绝对路径部分的查找方式,拯救了我在远程调试这个东西上工作了三分之四天的时间。我绝对需要它能够正常工作。我最初也认为和你一样。非常感谢您,先生! - GoinAum
1
请务必设置xdebug.remote_host参数。默认情况下似乎指向本地主机。 - Alrik

7
如果你仍然遇到问题,可以参考制作者的两篇博客文章,了解如何正确设置。第一篇文章适用于大多数情况,并且除了已安装的 xdebug 外,不需要任何零配置。第二篇文章详细介绍了所有配置设置

1
最新的零配置手册已经移至此处:http://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm - Evgeniy Chekan

1
在 PHP Storm 的“选择文件”对话框中“查看” profile.ini,只需右键单击它内部并选择“显示隐藏文件”,然后(在 Win7 中)移动到 C:\Users\YOURUSERNAME\AppData\Roaming\Mozilla\Firefox 或您的操作系统中的等效位置。

事实上,最终我根本不需要那个文件。 - Raffael
声明你的问题的一部分:“profile.ini…但我找不到它。它在哪里?”。 搜索带我来到这里,而且我错过了像我这样的评论。 - b0r7

-1
  1. 确保在php.ini中启用了远程调试

    xdebug.remote_enable = 1

  2. 您的服务器“192.168.56.128”应该在 PHP-> Servers

  3. 添加PHP Web Application调试配置,并使用添加的服务器
  4. 设置断点并使用此配置开始调试

3
抱歉,您的问题没有被完全阅读。以下是需要翻译的内容: -1表示你没有读懂我的问题:(1)正如我所说,我可以使用Eclipse进行远程调试——因此它已经启用了(2)请参见说明(3)请参见说明(4)请参见说明...# - Raffael

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