在日常的工作或者学习中,项目调试是是开发过程中不可缺少的存在,他不仅能帮你更直接的作为一个观察者查阅项目运行流程,更重要的能及时排查接口以及bug的问题出现点,以下简单介绍如何使用phpstorm+xdebug调试项目程序
// 当前教程使用环境
Phpstudy:V8
Php:8.0
Laravel:8.5
PhpStorm:2021.3
Xdebug:3
一丶配置xdebug扩展
- 输出phpinfo();在打开的界面执行全选-复制
- 打开https://xdebug.org/wizard,将复制的信息粘贴进入文本框并点击【Analyse my phpinfo() output】按钮,查看结果页
- 这里应该分两种情况 a: 一种是可以查询出相对应的扩展版本,你可以直接下载对应的扩展包,然后放在它给你指定的php安装目录文件夹里,并配置到指定的php.ini b: 第二种就是像我这样 没有找到对应版本 它会告诉你去安装指定的版本,我这里并没有安装它指定的,点击download去找跟自己自身php小版本一样的去下载 c:我的是8.0.2我就下载了8.0的[64位就选64,32就选32]
- 下载至php安装目录下的ext文件夹中
- 打开phpstudy 此时我们已经看到了该扩展 点击开启
- 接下里就是修改php.ini 文件了 具体需要的参数已经备注了以下 直接复制更改
[Xdebug]
xdebug.profiler_enable_trigger=Off
xdebug.profiler_output_name="xdebug.cache.%t-%s"
xdebug.profiler_append=Off
xdebug.mode=debug
xdebug.start_with_request=default
#客户端的ip<即IDE的机器的ip,不是你的web server>
xdebug.client_host=localhost
#端口号
xdebug.client_port=9000
#客户端的端口
xdebug.idekey=PHPSTORM
#此key必须配置 IDE和客户端都会用到
zend_extension=G:/PhpServer/phpstudy_pro/Extensions/php/php8.0.2nts/ext/php_xdebug.dll
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.auto_trace=Off
xdebug.trace_output_dir=G:/PhpServer/phpstudy_pro/Extensions/php_log/php8.0.2nts.xdebug.trace
xdebug.profiler_enable=Off
xdebug.profiler_output_dir=G:/PhpServer/phpstudy_pro/Extensions/php_log/php8.0.2nts.xdebug.profiler
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
- 保存 重启phpstudy 然重新打印phpinfo();扩展到此安装完毕
二丶配置phpstorm
- 依次打开>>文件>>设置>>php>>选择自己的php编辑器版本 Tips:这里根据自己的phpstorm版本自行选择打开路径
- 然后再找到调试窗口 核对自己上边在php.ini 设置的端口
- 紧接着>>调试>>DBgp代理窗口设置代理信息(和php.ini保持相同),最后点击应用
- 在phpstorm窗口找到添加/编辑配置具体位置因版本而异
- 点击phpweb
- 依次填入信息,名称我们随便起[服务器一定要配置正确,如果没有就按照以下方式添加]浏览器最好选择一下,其余可保持默认
- 名称我们可以随便填写一个 主机就是你的域名(可本地)
- 然后我们点击验证
- 脚本的验证路径默认是项目根目录我这里使用的是laravel 要选择public 然后点击验证 出现全部对号 我们就算配置成功了
- 最后点击应用,然后再主页面可以看到已经有了添加的配置调试程序
- 这时候我们点击右边的爬虫,就会在我们上边选择的浏览器中打开一个窗口 携带一个ide key
- 接下来测试接口 一般情况下我们的接口不是在浏览器运行的 这里我们打开接口调试工具 随便一个 我这里用的是phpstorm,输入我们的接口地址 并且携带上上图中的ide key
- 打开编辑器 找到相对应的接口 在需要调试的地方 打上断点
- 然后请求接口 不出意外 调试成功 即可看到信息
此教程相对应针对高版本的php 如果是7.3以下的 可能与之有较大差距 另外这里使用的是xdenug 3 如果是xdebug2 phpini的配置也有变化 但大同小异 可自行百度