一、 安装Xdebug
1. 确认环境
官网的Homestead默认安装了多个版本的php,所以首先应该确认当前服务器使用的是哪一个版本。
命令行里的php与网站运行时的php是不一样的,服务器使用的是php-fpm,所以不要在命令行下使用phpinfo()
或php --version
来获取版本(我之前在这里被坑了好久)。
正确的方法应该是,在Homestead中随意找一个能运行的页面,在页面controller的第一行插入phpinfo();
,然后会在该页面的最前面会插入服务器使用的php信息。
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
-
打开 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,开启监听,或者是点击右上角那个电话图标
三、配置浏览器插件
- PhpStorm推荐了几个Xdebug浏览器插件,选择所用浏览器对应版本即可
- 安装后浏览器右上角多了个甲虫图标,点击后选择
Debug
即开启调试
四、完毕
在编辑器内设置好断点,同时确保浏览器的插件为Debug
状态,就能尽情debug了