折腾 HomeStead 配置xdebug

总结:折腾了半天其实就3步,

1.配置debug端口号:

phpstorm或idea,settings->languages & frameworks-> php->debug:配置debug端口号与虚拟机php xdebug 默认端口号一致(可以修改)。

2.配置servers:

点击 “+” add 一个服务器
name 随便取,host与本地的虚拟主机域名一致,port 选 80, Debugger 选Xdebug
勾选:Use Path mappings (select if the server is remote or symlinks are used)
重要: File/Directory 左边是本地的目录,右边填写虚拟机的目录:
比如 左边:C:\Users\Administrator\code\项目 右边,/home/vagrant/code/项目
此时就已经完成了:设置一个断点,直接在浏览器或者postman上面访问本地虚拟机的虚拟目录绑定的域名。
快捷键调试:f7:单步调试一步步来;f8:分块调试跳过当前函数

3.开启调试

访问项目时加上参数 如:?XDEBUG_SESSION_START=PHPSTORM
Chrome 可以安装插件 xdebug helper

常用操作:

如何修改xdebug配置,主要是端口号
在项目里面用phpinfo();查看当前 php.ini 所在的位置(因为homestead里面有多个php)

vagrant up # 启动虚拟机
vagrant ssh # 进入虚拟机
nginx -t # 查找nginx配置文件所在的位置
cd /etc/nginx/sites-available/ # 查找项目配置

打开nginx配置文件,找到当前项目的phpfpm如:fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;

打开phpinfo();里面找到php.ini 的位置(homestead php的扩展文件其实在另一个目录,也可以从phpinfo();里找到)此目录为:/etc/php/7.2/cli/conf.d,此目录的文件都是超链接
查看有没20-xdebug.ini
如果有 就可以打开看端口号(默认为9000),可以修改,修改完重启php,命令为

sudo service php7.2-fpm restart #具体的phpfpm版本在nginx配置文件的fastcgi_pass里面看 用ps aux | grep php 查看进程发现有很多个phpfpm,从57都有

如果没有,取另一个目录里面找也就是超链接到的原始文件路径
类似:20-xdebug.ini -> /etc/php/7.2/mods-available/xdebug.ini
打开 /etc/php/7.2/mods-available/xdebug.ini 如果没有则表示没有xdebug模块。如果有则:ln -s /etc/php/7.2/mods-available/xdebug.ini /etc/php/7.2/fpm/conf.d/20-xdebug.ini
同样要重启php服务
如果没有,则表示homestead没有装xdebug
操作完成! 是不是很简单

如何安装xdebug:

根据官方文档找到xdebug的github.com地址
官网 github仓库
找到其中一个版本,注意,最高版本有坑,谨慎选择(可以把phpini贴到xdebug官网上检测 xdebug下载版本检测):
我们选到homestead默认的xdebug版本并下载

cd /home/vagrant
wget https://github.com/xdebug/xdebug/archive/2.7.2.tar.gz
tar -zxvf 2.7.2.tar.gz xdebug-2.7.2/
cd xdebug-2.7.2/
phpize
./configure --enable-xdebug
make
make install # 安装完毕,会告诉你xdebug目录

touch /etc/php/7.2/mods-available/xdebug.ini

以下是phpxdebug配置,

zend_extension=目录/xdebug.so
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9010
xdebug.max_nesting_level = 512
xdebug.idekey = PHPSTORM #(POSTMAN 加上?XDEBUG_SESSION_START=PHPSTORM,Chrome Xdebug helper 插件的 IDE key PhpStorm配置为PHPSTORM

配置完了,记得超链接
sudo ln -s /etc/php/7.2/mods-available/xdebug.ini /etc/php/7.2/fpm/conf.d/20-xdebug.ini
重启phpfpm sudo service php7.2-fpm restart

附录:
f9 : Resume Program,表示將继续执行,直到下一个中断点停止。
ctrl+f2 : Stop,表示中断当前程序调试。
f8: Step Over,跳过当前函数。 f8
f7 : Step Into,进入当前函数內部的程序(相当于观察程序一步一步执行)。
alt+shift+f7 : Force Step Into,強制进入当前函数內部的程序。
shift+f8 : Step Out,跳出当前函数內部的程式。
alt+f9 : Run to Cursor,定位到当前光标。
Variables : 可以观察到所有全局变量、当前局部变量的数值
Watches : 可以新增变量,观察变量随着程序执行的变化。

本作品采用《CC 协议》,转载必须注明作者和本文链接
编程两年半,喜欢ctrl(唱、跳、rap、篮球)
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1
zhaocrazy

好文章

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!