0

我使用的是一个非常旧的 Homestead 版本 2.0,启用了 PHP 7.0 和 Xdebug。当我升级到支持同时运行多个 PHP 版本的 Homestead 7.0.1 时,Xdebug 停止连接到 PhpStorm 2017。

PhpStorm 中的配置与 Homestead 升级前相同。

我将我的原件复制xdebug.ini到 Xdebug 的新 PHP 7.1 ini 中。这是我当前的配置:

zend_extension=xdebug.so
xdebug.var_display_max_data = -1
xdebug.var_display_max_depth = 10
xdebug.default_enable = 0
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9001
xdebug.remote_host = 192.168.10.1
xdebug.remote_autostart = 0
xdebug.remote_handler = dbgp
xdebug.idekey = PHPSTORM
xdebug.collect_return = 1
xdebug.collect_params = 10
xdebug.show_mem_delta = 1
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = "/home/vagrant/Projects/xdebug_profiler"
xdebug.trace_enable_trigger = 1
xdebug.trace_output_dir = "/home/vagrant/Projects/xdebug_traces"
xdebug.profiler_enable = 0
xdebug.trace_enable = 1
xdebug.cli_color = 1
xdebug.remote_log = "/home/vagrant/Projects/logs/xdebug_remote.log"

如果我运行,php -m我会看到 Xdebug 不在该列表中,因为 Homestead 7 将 PHP 7.2 设为默认值,截至本文为止,这与 Xdebug 不兼容。但是,如果我这样做,php7.1 -m我会在列表中看到 Xdebug 并php7.1 -v显示:

with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans

所以我知道 Xdebug 安装正确。

PhpStorm 的首选项显示它在 Vagrant 上使用 7.1 解释器,并且能够成功连接到 Vagrant。我通过 PhpStorm 的 UI 手动导航到xdebug.sovagrant 上的文件,以确保它可以找到它。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

通过php7.1 artisan显式执行而不是运行 CLI 脚本php artisan没有帮助。

这不一致地显示在我的/home/vagrant/Projects/logs/xdebug_remote.log但大多数时候没有远程日志条目:

Log opened at 2018-01-17 17:50:46
I: Checking remote connect back address.
I: Checking header 'HTTP_X_FORWARDED_FOR'.
I: Checking header 'REMOTE_ADDR'.
I: Remote address found, connecting to 192.168.10.1:9001.
W: Creating socket for '192.168.10.1:9001', poll success, but error: Operation now in progress (29).
E: Could not connect to client. :-(
Log closed at 2018-01-17 17:50:46

为什么 PhpStorm 不能再接收来自 Vagrant 上的 Xdebug 的信号了?

4

1 回答 1

0

为了解决这个问题,我需要将 PHP 7.1 设置为默认而不是 PHP 7.2。这是通过运行这一系列命令然后在 PHPStorm 中重新连接 Xdebug 来完成的:

sudo update-alternatives --set php /usr/bin/php7.1
sudo update-alternatives --set phar /usr/bin/phar7.1
sudo update-alternatives --set phar.phar /usr/bin/phar.phar7.1 
sudo update-alternatives --set phpize /usr/bin/phpize7.1
sudo update-alternatives --set php-config /usr/bin/php-config7.1
sudo service php7.1-fpm restart
于 2018-01-17T23:57:45.217 回答