XDebug 在 PHPStorm 中停止工作

问题描述 投票:0回答:12

我已经为此绞尽脑汁好几个小时了。

在几周没有使用 PHPStorm 后,我回来做了一些工作,由于某种原因,调试不再起作用。以前可以用,但现在不行了,我不知道发生了什么。

我在 Windows 上运行,使用 IIS,PHP 版本 5.3.8。 XDebug 已安装,并且我已按照通常的说明在 PHP.ini 中设置了配置。

当我运行 phpinfo() 时,一切看起来都很正常(即 XDebug 在那里)。

我重新检查了各种设置,下载了比我使用的稍新版本的 XDebug (Xdebug v2.2.1),但似乎没有什么可以让它发挥作用。

有人可以给我一些线索,告诉我接下来可以看什么吗?

更新:

我又花了几个小时来解决这个问题,但似乎并没有取得多大进展。根据 phpinfo(),XDebug 已安装并加载。我打开了日志记录,但除了 XDebug 确实正在连接之外,它并没有告诉我太多信息...

Log opened at 2013-02-17 04:13:07
I: Connecting to configured address/port: localhost:9000.
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="file:///C:/web/dbg/index.php" language="PHP" protocol_version="1.0" appid="6912" idekey="PHPSTORM"><engine version="2.2.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2012 by Derick Rethans]]></copyright></init>

-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" status="stopping" reason="ok"></response>

Log closed at 2013-02-17 04:13:07

看来问题出在 PHPStorm 方面,但我看不出问题出在哪里。我尝试创建一个非常简单的项目,但也无法对其进行调试。

xdebug phpstorm
12个回答
29
投票

当你花几个小时与某件事搏斗,然后在绝望中尝试一些简单的事情并且它有效时,你难道不讨厌吗?

我决定尝试不同的端口,9001 而不是默认的 9000,它成功了!

我现在意识到我最近安装了 Twonky(用于将视频流传输到我的电视),当我检查设置时,它在那里......端口 9000。


8
投票

今天下午遇到了同样的问题 - 发现了这个问题以及其他几个SO问题,所以我想我应该发布为我解决这个问题的解决方案。

我缺少到文件系统的映射。这很奇怪,因为我见过 PHPStorm 在以前丢失它们时提示我。

enter image description here

希望这对将来的人有帮助:)


3
投票

更新到 El Capitan 后也遇到同样的问题。我使用的第一个提示是“运行”->“Web 服务器调试验证”。 PHPStorm 的这个工具给了我一个关于

xdebug.remote_host
我正在使用 v-hosts 的提示,它抱怨
localhost
那里的值不正确。所以我用
xdebug.remote_connect_back=On
更新了 xdebug 设置,它成功了!


2
投票

显然,如果您尝试在较新版本的 xdebug 上进行调试,则必须将此行包含到您的 xdebug-php.ini 设置中

xdebug.mode=debug


1
投票

我遇到了同样的问题,我通过删除所有手表来解决它,然后重新启动 phpStorm


1
投票

我也自己解决了,因为 PHP-Storm 和 PHP-FPM 正在监听相同的端口...只需杀死所有 php-fpm 端口即可。


1
投票

有同样的问题。对我来说,我使用端口 9010 进行 xdebug。问题原来是我最近为新鼠标安装的 Logitech GHub 软件侦听端口 9010!您可以使用它来查看 Mac 上给定端口上正在侦听的内容:

lsof -nP -iTCP:9010 | grep LISTEN

0
投票

较新版本的 PHPStorm 具有调试器验证。官方 PHPStorm 博客有一篇关于此功能的文章,可能会帮助您弄清楚。

当我设置一个配置了 php-fpm 的盒子时,一个麻烦是 php-fpm 默认也在端口 9000 上运行,所以我必须将 php.ini 和 PHPStorm 的首选项中配置的端口更改为 9001 之类的端口。

就其价值而言,我当前的 xdebug php.ini 设置:

[xdebug]
zend_extension="/the/path/to/xdebug.so"
xdebug.file_link_format="txmt://open?url=file://%f&line=%l"
xdebug.remote_enable=1
xdebug.remote_autostart=On
xdebug.remote_port=9001
xdebug.profiler_enable_trigger=1
xdebug.max_nesting_level=250

0
投票

我也有同样的问题!我终于意识到我的所有配置都是正确的,但是在浏览器端,我没有启用Chrome浏览器的调试。每个浏览器都有自己的使调试开始工作的方式。


0
投票

我遇到了同样的问题,我尝试了在 SO 和其他站点中可以找到的所有解决方案(检查 phpStorm 和 Xdebug 是否位于同一端口,检查我在文件系统上是否有服务器映射,重新安装 Xdebug 等.) 但最终问题在于我们在内部服务器上运行该网站,IT 人员将我计算机的 IP 地址更改为从可以连接到该服务器的允许地址中过滤掉的地址。这就是为什么 phpStorm 开始忽略来自 Xdebug 的断点。

希望这能帮助将来的人并节省他很多时间。


0
投票

您有可能在“Incoming Connection From Xdegug”窗口中意外按下“DISABLE DEBUG LISTENING”按钮(此窗口的示例在附件图像中。

我想我是在同时运行多个项目并开始调试新项目时做到的。我找到的解决方案:我从项目文件夹子文件夹 .idea 中删除,然后将我的文件夹作为 PhpStorm 项目打开并开始调试。然后,当再次出现“来自 Xdegug 的传入连接”窗口时,我按下“接受”按钮。之后,使用 XDebug 调试工作正常。


-1
投票

发现如果 xdebug 日志文件不可写,那么它可能无法工作。总是最好设置 xdebug.remote_log 并使其可写。

© www.soinside.com 2019 - 2024. All rights reserved.