因为网上一堆复制的,十个结果里面九个是复制的,还有一个是错的。
下面所有过程都是自己配置过的,截图都是现截取的,如果有出现问题请仔细核对步骤
- 写在最前面,我的环境
如果后续步骤出现不符,请核对是否环境不同。Vbox版本 VirtualBox VM 6.0.6
Vagrant版本 2.2.4
laravel-homestead v8.5.3
Homestead 8.4.0
ubuntu18.04.1
PHP Version 7.3.4 - 配置虚拟机
首先Homstead自带了开启Xdebug的脚本,直接在虚拟机内运行一行命令xon
即可。
关闭Xdebugxoff
。
sudo su
xon
service php7.3-fpm restart
为了确保生效建议重启一下php-fpm,注意要重启你使用的版本。
接下来查看Xdebug的配置文件在哪。因为默认的xdebug.remote_host
需要修改一下。
这边我直接修改了Laravel的入口文件/public/index.php
,加入一行echo phpinfo();
找到配置文件路径/etc/php/7.3/fpm/conf.d/20-xdebug.ini
查询一下虚拟机的默认网关
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 100 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.2.2 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
在配置文件中加入一行xdebug.remote_host = 10.0.2.2
,其中10.0.0.2
就是上面查到的默认网关
保存后重启php-fpm,检查一下phpinfo中输出的信息是否正确
- 配置phpstorm
可选步骤,测试一下配置是否有问题。注意一下路径要到/public
而不是项目根目录。
接下去就是在浏览器安装Xdebug插件。这边自己根据浏览器安装。
在正常情况下这样安装就可以调试代码了,但是这样还有点问题,除了public下的代码其他地方代码还是没有办法调试,所以还需要继续配置。(其实是系统的自动配置有点问题,在上面如果有点击检测系统会自动添加一个服务器,下面会说)
接着配置CLI
在/routes/web.php
中已经可以正常打断点了。