phpStorm - 配置xDebug

7

我尝试根据这个教程配置我的phpStorm进行调试。

我的整个项目位于C:\work\Projects\xampp\htdocs\myCode

phpStorm中,我按照以下步骤操作 -

文件 > PHP > 服务器下:

Name: myCodeDebug
Host:http://localhost/myCode
Port:80
Debugger:Xdebug

服务器上的绝对路径:http://localhost/myCode(与项目位置相同)。

我在端口80、443上使用Apache服务器。

我的PhpStorm版本是7.1.3

现在我标记了一些断点,转到Chrome并导航至http://localhost/myCode/,但没有任何PhpStrom调试器被提示,尽管整个网站已加载。

这里漏掉了什么?如何使它与xDebug一起工作?

更新:

根据评论中的建议,我遵循了此教程,现在我有了Chrome扩展程序 - Xdebug

这个手册中,我粘贴了php -i的所有内容并完成了所有必需的操作。

Xdebug生成器所述,我添加了两个书签 - 开始调试停止调试,IDE密钥为PHPSTORM

在我的php.ini中,我有 -

[XDebug]
xdebug.idekey = "PHPSTORM"
xdebug.remote_port = 80

我使用 xampp端口80 进行工作。
现在我在 phpStrom 中点击 开始调试 书签,在 php 范围内设置任何断点,将 Xdebug 扩展设置为 Debug 模式,浏览到 localhost/myCode/index.php ,但 phpStrom 中没有发生任何调试。
如何正确配置? 更新2:cmd 下执行 php --version 命令,结果为 -
PHP 5.5.11 (cli) (built: Apr  8 2014 15:07:14)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans

同时,所有在文件 | 设置 | PHP | 服务器中的内容都被删除了。

更新3:

[这是我的phpinfo();](个人详细信息已更改为XXXXXXXX)。


@LazyOne:谢谢,麻烦您看一下我的更新。 - URL87
1
  1. 你看过这个吗?http://confluence.jetbrains.com/display/PhpStorm/Installing+and+Configuring+XAMPP+with+PhpStorm+IDE
  2. xdebug.remote_port = 80 -- 这是什么鬼?为什么是80?有文档吗?http://confluence.jetbrains.com/display/PhpStorm/Xdebug+Installation+Guide
- LazyOne
@LazyOne:我的 phpinfo() 在“更新3”下的帖子中。 - URL87
那个文件没有任何xdebug设置的痕迹,甚至在头部也没有像你的Update 2那样的“with Xdebug v2.2.5”。 - LazyOne
这是一个很好的教程,可以帮助你开始学习 https://hubpages.com/technology/Local-PHP-Debugging-with-XDebug-Atom-and-XAMPP - arunjos007
显示剩余3条评论
4个回答

12

首先,您的php.ini似乎没有安装xdebug。因此,第一件事是您应该转到Xdebug安装向导,并在此处粘贴您的php.ini文件,以便获得详细的安装说明。

如果您正确安装了它,则您的php.ini文件中应该有类似以下的内容:

xdebug in php.ini

我认为第二件事是更改xdebug端口。尽管您的Apache正在80端口工作,但对于xdebug,您应该设置另一个端口。

在您的php.ini中,您应该设置例如:

xdebug.remote_port=10000

当然,还需要重新启动服务器(默认情况下我的端口号是9000,但PhpStorm通知该端口已被占用,所以我将其更改为10000)。

现在,您应该进入PhpStorm设置并选择PHP->服务器。您应该在此处拥有您的服务器和端口80,并且您应该在此处拥有“验证远程环境”。单击它,在新窗口中,您应该有“验证”按钮。您应该点击它以确保一切正常。例如,您应该在此处显示Xdebug信息。

现在,您应该回到设置(再次),选择PHP->调试。在这里,您需要与php.ini文件中设置的端口相同(10000)。

在我的PhpStorm中,我在此调试设置中有以下设置:

phpstorm xdebug

现在,我假设您已经打开了项目并创建了一些断点。您应该单击工具栏中的“开始监听PHP调试连接”图标 - 在调试图标旁边的第二个位置。

现在,您可以转到浏览器,如果您已正确安装插件并选择了调试,并在浏览器中刷新了页面,则应在PhpStorm中收到连接调试的提示,并且您将能够调试您的站点。

如果您仍然遇到问题,您还应查看http://www.jetbrains.com/phpstorm/marklets/ - 您可以使用这些代替浏览器插件(将生成的链接添加到浏览器的工具栏/收藏夹中)。

我还建议您查看PhpStorm xdebug教程 - 这几乎需要1小时,但您应该能够从中学到很多东西。


它也是一个适合初学者的好教程。https://hubpages.com/technology/Local-PHP-Debugging-with-XDebug-Atom-and-XAMPP - arunjos007

2
根据您的phpinfo()输出,您没有加载XDebug插件(用于Apache)。因此,虽然当您从命令行运行PHP时它可能会显示,但在通过Apache访问时不会显示。
Apache版本和PHP命令行之间有区别。CLI和Apache版本有不同的php.ini文件,因此您需要找到Apache版本并在末尾添加以下内容:
zend_extension=C:\path\to\xdebug.dll

[xdebug]
xdebug.idekey = "PHPSTORM"
xdebug.remote_enable = 1
xdebug.connect_back = 1

如果您需要更多信息,PhpStorm本身提供了一个有用的入门指南,可以在这里找到。

2
虽然不是特定针对PHPStorm,你是否看过http://xdebug.org/docs/install#debugclient?该网站提供了从安装到调试代码的逐步指南。此外,由于该网站来自xdebug,因此是可信的来源。
启动调试器 为了启用Xdebug的调试器,您需要在php.ini中进行一些配置设置。这些设置是xdebug.remote_enable以启用调试器,xdebug.remote_host和xdebug.remote_port以配置调试器应连接到的IP地址和端口。如果您希望调试器在发生错误情况(php错误或异常)时启动会话,则还需要更改xdebug.remote_mode设置。此设置的允许值为“req”(默认值),它使调试器在脚本启动时立即启动会话,或者“jit”,当仅在出现错误时才启动会话。
该网站提供了大量的配置设置、技巧和通用帮助,以帮助您快速上手。它还提供了多个Xdebug浏览器界面的链接,包括(声称是)最容易使用的Firefox插件The easiest Xdebug。Chrome、Safari和Opera也有相应的插件。
如果您需要进一步的帮助,请告诉我。
再次声明,这可能与您的IDE无关,但它可能会指引您正确的方向。

0

XDebug应该通过端口9000发送数据--默认端口--除非您在端口9000上运行其他内容,并且PhpStorm应该设置为监听相同的端口。这是它们的默认设置,所以不要更改它们。端口80用于您的Web服务器,而不是用于XDebug与PhpStorm通信。如果您将其放在端口80上,则您的Web服务器已经占用了该端口,XDebug将无法与PhpStorm通信。

您需要在PhpStorm设置中更改此设置,如果您修改了XDebug配置,则可能还需要更改。


我不认为这是真的。你不需要在书签中更改它,因为它们只是简单地设置了cookie:javascript:(/**%20@version%200.5.2%20*/function()%20{document.cookie='XDEBUG_SESSION='+'PHPSTORM'+';path=/;';})() - Marcin Nabiałek
@MarcinNabiałek,啊,没错,你关于cookie的说法是对的。我刚刚测试了XDebug生成。你只需要为Zend Debugger cookie指定端口。我猜你需要在XDebug本身中进行配置。 - Kevin Nelson

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