官网的Homestead默认安装了多个版本的php,因此首先应该确认当前服务器使用的是哪个版本。php
命令行里的php与网站运行时的php是不同的,服务器使用的是php-fpm,因此不要在命令行下使用phpinfo()
或php --version
来获取版本(我以前在这里被坑了很久)。浏览器
正确的方法应该是,在Homestead中随意找一个能运行的页面,在页面controller的第一行插入phpinfo();
,而后会在该页面的最前面会插入服务器使用的php信息。bash
Xdebug官方提供了一个检测工具,只须要提供phpinfo()
的信息,就可给你一个详细的xDebug安装步骤。页面地址:xdebug.org/wizard.php;服务器
将第一步里的phpinfo页面的信息复制粘贴到工具页面的输入框里(复制哪些?所有吧,从标题PHP Version
一直拖鼠标选择复制直到最后php licence
)。而后点击Analyse my phpinfo() output
,而后页面会给出详细的步骤,而后安装步骤一步步作就好。php7
由于Homestead是在虚拟机里,要在宿主机内调试须要打开远程调试。app
在/etc/php/7.2/fpm/conf.d/
目录下新建xdebug.ini
文件,修改xdebug的配置。编辑器
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream=0
xdebug.cli_color=1
xdebug.show_local_vars=1
复制代码
而后重启服务php-fpm
sudo service php7.2-fpm restart
复制代码
再打开phpinfo
页面,若是看到有xdebug
的表格,即表示安装成功。再检查表格内的远程调试是否已打开,正确的话即配置成功。工具
打开 Perferences -> Languages&Frameworks -> PHP,首先选择项目的php版本,以后在CLI Interpreter 网站
点击后面的...
,在左侧栏顶部点击+
,选择From Docker, Vagrant, VM, Remote
选择Vagrant,Vagrant Instance From
选择Homestead所在的文件夹,确认返回
在CLI Interpreter里选择新添加的Remote PHP
打开Preferences -> Languages&Frameworks -> PHP -> Servers,给本身的项目添加新Server项,Host填入Homestead里配置的路径,Debugger选择Xdebug
,勾上Use path mappings
,在右边Absolute path on the server
填入该项目在Homestead内的绝对路径,是以/home/vagrant/...
开头的
点击Run -> Start Listening for PHP Debug Connection,开启监听,或者是点击右上角那个电话图标
Debug
即开启调试在编辑器内设置好断点,同时确保浏览器的插件为Debug
状态,就能尽情debug了