PhpStorm+Homestead+Xdebug调试Laravel

2,947 阅读2分钟

一、 安装Xdebug

1. 确认环境

官网的Homestead默认安装了多个版本的php,所以首先应该确认当前服务器使用的是哪一个版本。

命令行里的php与网站运行时的php是不一样的,服务器使用的是php-fpm,所以不要在命令行下使用phpinfo()php --version来获取版本(我之前在这里被坑了好久)。

正确的方法应该是,在Homestead中随意找一个能运行的页面,在页面controller的第一行插入phpinfo();,然后会在该页面的最前面会插入服务器使用的php信息。

phpinfo

2. 安装Xdebug

Xdebug官方提供了一个检测工具,只需要提供phpinfo()的信息,就可给你一个详细的xDebug安装步骤。页面地址:xdebug.org/wizard.php;

将第一步里的phpinfo页面的信息复制粘贴到工具页面的输入框里(复制哪些?全部吧,从标题PHP Version一直拖鼠标选择复制直到最后php licence)。然后点击Analyse my phpinfo() output,然后页面会给出详细的步骤,然后安装步骤一步步做就好。

3. 配置Xdebug

因为Homestead是在虚拟机里,要在宿主机内调试需要打开远程调试。

/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

然后重启服务

sudo service php7.2-fpm restart

再打开phpinfo页面,如果看到有xdebug的表格,即表示安装成功。再检查表格内的远程调试是否已打开,正确的话即配置成功。

二、配置PhpStorm

  1. 打开 Perferences -> Languages&Frameworks -> PHP,首先选择项目的php版本,之后在CLI Interpreter

  2. 点击后面的...,在左侧栏顶部点击+,选择From Docker, Vagrant, VM, Remote

  3. 选择Vagrant,Vagrant Instance From选择Homestead所在的文件夹,确认返回

  4. CLI Interpreter里选择新添加的Remote PHP

  5. 打开Preferences -> Languages&Frameworks -> PHP -> Servers,给自己的项目添加新Server项,Host填入Homestead里配置的路径,Debugger选择Xdebug,勾上Use path mappings,在右边Absolute path on the server填入该项目在Homestead内的绝对路径,是以/home/vagrant/...开头的

  6. 点击Run -> Start Listening for PHP Debug Connection,开启监听,或者是点击右上角那个电话图标

三、配置浏览器插件

  1. PhpStorm推荐了几个Xdebug浏览器插件,选择所用浏览器对应版本即可
  2. 安装后浏览器右上角多了个甲虫图标,点击后选择Debug即开启调试

四、完毕

在编辑器内设置好断点,同时确保浏览器的插件为Debug状态,就能尽情debug了