我使用的是非常古老的Homestead 2.0版本,启用了PHP 7.0和Xdebug。当我升级到Homestead 7.0.1,它同时支持多个版本的PHP运行时,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.so
文件,以确保它能找到它。
通过明确而不是php7.1 artisan
执行php artisan
来运行CLI脚本无济于事。
这不一致地显示在我的/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的信号?
答案 0 :(得分: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