50

更新问题:PhpStorm | WebMatrix (IISExpress) | Xdebug.remote_port | — 将哪个端口放在哪里?


我正在使用 WebMatrix 和 IISExpress 在我的 Windows 机器上运行 localhost Web 服务器。我已经在其中安装了 PHP 和 Xdebug,它们都在工作。

我有一个本地 WordPress 安装。

我现在正试图让 PhpStorm 使用 Xdebug 对其进行调试。

当我运行 PhpStorm 时,它会在浏览器中启动 Web 应用程序,并在浏览器中使用相关的调试参数。

IDE KEY 匹配

ide

xdebug.remote_port配置正确。(后来我发现这是错误的,但不是错误的,应该是9000端口)

xdebug.remote_port

但似乎 Xdebug 永远无法与 PhpStorm 进行通信。PhpStorm 一直在监听,并且执行完全运行而不会在任何断点处停止。

PhpStorm PhpStorm

4

16 回答 16

51

这些行对于使其工作至关重要(在 php.ini 中):

zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.remote_autostart = 1 # <-------- THIS
xdebug.remote_enable = 1 # <----------- AND THIS

没有这些行,xdebug 将永远无法在 phpstorm 上工作;)

于 2015-05-07T19:10:43.647 回答
38

尝试更改 php.ini 和 IDE 中的 xdebug 侦听端口。

运行 Mac Yosemite,对我来说,问题是我安装了自制软件,遵循使用 php-fpm 的指南,9000默认使用端口(与 xdebug 默认端口冲突)...更改我xdebug.remote_port的 to9001并更改 xdebug 端口phpstorm 解决了这个问题,尽管我怀疑这个问题可能发生在任何 IDE 中的任何人身上。我用谷歌搜索了一天的大部分时间并没有看到这个解决方案(因为我相信它对安装方法非常具体)..但我希望它对某人有所帮助。

于 2015-03-20T19:14:44.253 回答
24

我花了大约一个小时才注意到这个按钮没有被激活;)

“运行”->“开始监听 PHP 调试连接”

在此处输入图像描述

于 2015-10-26T08:51:27.983 回答
8

首先检查 xdebug 在哪个端口上工作,你可以在你的 php.ini 中找到它xdebug.remote_port=9123。正如你在我的例子中看到的那样,它设置为 9123。
现在打开 PhpStorm 去 php 调试,看截图: 在此处输入图像描述

在 Xdebug 下你会找到 Debug 端口,确保它的值与 php.ini 文件中的值相同xdebug.remote_port(在我的例子中是 9123)。

希望能帮助到你

于 2015-05-17T17:47:45.350 回答
6

对我来说,它正在改变这条线:

xdebug.remote_host=localhost 到 xdebug.remote_host=myComputerIP

(Mac 用户:在终端运行 ifconfig 以查找您的 ip)

于 2015-10-28T00:46:37.547 回答
5

如果其他人遇到这个问题并且正在使用 Vagrant,这就是最终为我解决的问题:

xdebug.remote_host=10.0.2.2

这需要是 Vagrant 框中本地计算机的 IP 地址,默认值为 10.0.2.2。如果你 ssh 进入你的 Vagrant 框,如果你想确认,它会显示你登录的 IP。

我知道这与 OP 的特定设置没有直接关系,但是这篇文章出现在很多 xdebug / PhpStorm Google 搜索中,所以希望这可以帮助其他人。

于 2017-06-20T14:48:49.313 回答
5

可能是防火墙。

第 572 天……还没睡没吃……但我终于找到了罪魁祸首:Windows Defender!

基本上,我有一个防火墙阻止 JetBrains IDE Support chrome 扩展通过默认的 127.0.0.1:63342 地址向 PhpStorm 发送数据。

---编辑

第 864 天......同样的问题再次发生,这次是在 Linux 上......但我终于找到了罪魁祸首:Ubuntu 防火墙!

说真的,几个月后我又遇到了这种情况,使用 Linux,又是防火墙。禁用防火墙解决了它sudo ufw disable- 如果您关心防火墙并希望使其保持启用状态,则必须深入研究为它创建某种白名单。

于 2019-01-17T18:22:11.537 回答
3

PHPStorm 在 Run > Web Server Debug Validation 中有一个内置工具。

它帮助我解决了我的问题。

在此处输入图像描述

于 2016-07-28T16:06:54.670 回答
2

中存在语法错误php.ini。有额外的"引号";冒号;

xdebug.remote_port

于 2015-02-03T22:25:34.333 回答
1

I also obtain this error message.
Also was troubles with the php.ini but more subtle.

Try to find and delete a row like this

extension=php_xdebug-...

Consider to look at my answer here for details "Xdebug - command is not available".

于 2015-02-03T21:35:00.967 回答
1

我在 PHPStorm 中尝试在 Windows 上使用 XAMPP 测试 Laravel 项目时遇到了同样的问题。我不知道我到底做错了什么,但我最终确实让它工作了。我按照此处 PHPStorm 站点上的分步说明进行操作

我认为配置不正确的一件事是设置中的 PHP 菜单中没有设置解释器。

我还在我的php.ini. 这些是我在工作时的设置:

zend_extension = C:\xampp\php\ext\php_xdebug-2.3.2-5.6-vc11.dll //as recommended from the Xdebug site itself 
xdebug.remote_enable=1=
xdebug.profiler_enable=1
xdebug.profiler_output_name = "cachegrind.out.%t-%s"

在我的运行/调试配置中,我使用了一个 PHP Web 应用程序设置,它只是从站点的根目录开始。(起初,我认为附加?XDEBUG_SESSION_START=<xxxxxxx>是一个错误,但事实并非如此)。希望如果其他人面临类似问题,这可能会有所帮助。

于 2015-05-06T20:45:15.943 回答
1

右键单击“控制台”选项卡并取消选中“专注于启动”(如下图所示)应该可以解决问题 在此处输入图像描述

于 2019-08-23T05:18:59.947 回答
0

我尝试了任何建议的技巧,最后我通过 127.0.0.1/script.php 而不是 localhost/script.php 和 bingo 调用了脚本!

于 2016-08-29T17:49:46.067 回答
0

我遇到了一个问题,即一个项目可以工作,而另一个项目不行。我尝试了许多不同的配置,并尝试查看 xdebug 的日志等。此修复似乎解决了我的问题:

尝试将 xdebug 的实际端口设置为 9123 而不是 9000。

PHPStorm 的新版本 (9) 将其默认 xdebug 连接端口更改为 9123(PHPSTORM 配置,而不是实际的 xdebug 配置),这可能是有充分理由的,因为将 PHPSTORM 配置设置为 xdebug 默认 9000 不起作用但有他们设置为 9123 确实有效并解决了问题。

于 2015-09-10T16:09:16.713 回答
0

此修复程序专门用于 xdebug 工作,但断点不适用于docker

第 1 步(检查 xdebug 是否真的有效):

  1. 转到 phpstorm 中的设置,然后进行调试,选中“在第一行中断...”框
  2. 再试一次,如果它在第一个脚本 xdebug 工作时中断

可能是断点不起作用,因为它找不到文件。

第 2 步(检查您的路径映射是否设置正确):

  1. 转到服务器(它在调试之下)
  2. 确保您设置了服务器并选择了“使用路径映射”
  3. 下面确保您的 php 文件映射到 docker 容器中的正确路径。在我的情况下,文件被映射到 /var/www/files,但实际上在容器中它是 /var/www/app/files。
于 2021-12-29T13:41:05.330 回答
0

基于 peteclark3 答案:

如果您有多个带有 xdebug 的 php-fpm 版本,例如 php5.6-fpm、php7.1-fpm,我认为一种解决方案 - 确保只有一个正在运行。我同时运行了 5.6 和 7.1。然后尝试将 7.1 更改为 9001 端口。但是如果我在 PhpStorm 中更改为 9001 端口,那么 5.6 开始无法正常工作,因为它侦听 9000。所以每次更改 php 版本时,可能需要更改 phpStorm 中的设置。所以我认为最好只运行一个 php-fpm 并且所有 php-fpm 版本都可以使用相同的端口。

于 2018-01-23T17:10:30.780 回答