Laravel 之道第一章:PhpStrom Xdebug 配置与使用
55

一、所需开发工具

  • PhpStrom

下载地址

PhpStrom 是开发 PHP 应用和 Laravel 应用必备神器,其集代码调试、语法高亮、类和方法跳转和提示、命令行窗口、TODO工具、服务器代码同步等等方便实用的功能。此次了解 Laravel 生命周期运行原理就借用此 IDE 的代码逐步调试功能。

  • Chrome

建议使用电脑管家安装最新谷歌浏览器

谷歌浏览器我就不在这介绍了,相信大家都知道。

  • JetBrains IDE Support

这是 PhpStrom 开发公司的谷歌浏览器联调组件,是安装到谷歌浏览器的一个组件,在谷歌商店就能够搜到,建议各位童鞋们先安装谷歌访问助手(Chrome的一个组件,请百度),再到谷歌商店下载安装。下面先看一下的它的样子

file

二、所需 PHP 扩展

  • 其基本 Laravel 运行扩展,请到 Laravel 文档中查阅

基本 PHP 环境

  • Xdebug 扩展

Xdebug 下载

注:下载时,请根据 PHP 版本、 VC 运行库版本、PHP 位数以及 PHP 是否为线程安全进行选择。如何查看上面这些信息请看 phpinfo();

file

三、安装 Laravel5.6

安装 Laravel5.6

四、Xdebug 配置

  • php.ini 配置

请将下列配置粘贴到 php.ini 后面

[xdebug]
zend_extension="D:\Server\PHP\ext\xdebug.dll"
xdebug.profiler_enable=1
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir="D:\Server\PHP\xdebug"
xdebug.trace_output_dir="D:\Server\PHP\xdebug"
xdebug.profiler_output_name="xdebug.cache.%t-%s"
xdebug.profiler_append=0
xdebug.remote_enable=1
xdebug.remote_host="localhost"
xdebug.remote_port=9001
xdebug.remote_handler="dbgp"
xdebug.idekey=PHPSTROM

zend_extension:填写你下载的 Xdebug 扩展本机所在绝对路径

xdebug.profiler_enable:0 为关闭,1 为开启

xdebug.profiler_enable_trigger: 有关触发器的设置,写 0 即可

xdebug.profiler_output_dir:Xdebug 日志记录的地址

xdebug.trace_output_dir:同 xdebug.profiler_output_dir,配置请填写一致

xdebug.profiler_output_name: 日志输出格式,按照我写就行

xdebug.profiler_append: 关于附加设置,具体未知,默认填 0 即可

xdebug.remote_enable: 远程调试功能,0 关闭,1 开启,只要是与浏览器联调,请开启此功能

xdebug.remote_host: 联调的URL主机地址

xdebug.remote_port: 联调的请求端口,如果本机9001未被占用,请如此设置即可

xdebug.remote_handler:调试函数,默认 dbgp,不要对其修改

xdebug.idekey:与 PhpStrom 连接时的确认口令,默认 PHPSTROM

五、PhpStrom配置

PhpStrom配置前,要打开安装好的 Laravel5.6,在项目中进行配置,否则无效

第一步,设置 PHP CLI

file

第二步,设置 Xdebug 端口

file

第三步,设置 PhpStrom Key、主机以及端口

file

第四步,新建 Xdebug 服务,Name 可以根据自己项目名称来取

file

第五步,配置 Xdebug 调试接口

file

file

六、谷歌浏览器配置

只需下载安装上 JetBrains IDE Support 组件即可,无需额外配置,尤其不要动 JetBrains IDE Support 接口配置,默认即可

七、Laravel 配置

  • 第一步

启动 MySQL 服务,设置 .env 文件的数据库配置

  • 安装 Laravel 用户认证系统

项目根目录下,依次运行如下命令

php artisan make:auth
php artisan migrate

八、运行测试

如下图所示

file

PhpStrom 默认工具位置按照我的喜好进行了调整,各位可以默认,也可以根据自己情况调整

我们是一群被时空压迫的孩子。 ---- 爱因斯坦

本帖由 Summer 于 2个月前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 22

应该从官方下载谷歌浏览器,电脑管家下载的不清楚,百度下载的都是阉割了的

2个月前
yuanshang

@4pmyyy 电脑管家下载的挺完善,谷歌浏览器在管家的推荐榜中排名较高,并支持静默安装

2个月前

你可能需要这篇文章,在Docker中使用Xdebug

2个月前

debug控制台没东西啥情况,大佬

file

2个月前
yuanshang

@kuner 这个是配置出错的缘故。你看一下 phpinfo(); 能不能打印 Xdebug 的信息,确认 Xdebug 安装成功。这个如果成功,调试配置URL时,如果调试的是主页,后面不要带 /

file

2个月前
qiuyuhome

xdebug 一直在用, 请教几个问题.

  1. 想要调试 api, 如何处理?
  2. 能否出一个文章, 讲一下 xdebug 的基本原理.
  3. cli 如何调试?
  4. DBGp proxy 是什么? 一直没搞懂.
2个月前

@yuanshang 十分谢谢,我这个DBGp proxy的host配置和server里host不一致。

2个月前
yuanshang

@qiuyuhome 你好,关于你这些问题,我也在学习。本人只是接触 PHP 一年多的菜鸟一枚,好多东西不是很懂。现在,利用这个 Xdebug 工具,主要是为了研究学习 Laravel 生命周期原理。希望以后多多交流,共同学习。

2个月前
Handle

程序员,翻墙能力是硬指标。

2个月前
qiuyuhome

@yuanshang 好的. 共勉.

2个月前

@qiuyuhome
调试api可以从浏览器直接发请求
调试Cli可以直接从phpstorm里面开始执行php程序。

2个月前

本地开发环境用的是 Homestead,请问如何配置 PhpStrom 和 Xdebug 呢?

1个月前
yuanshang

@lianglunzhong Homestead,表示没用过,这应该是虚拟机,重点配置 remote_ip 即远程 ip 地址,包括本机 PhpStorm 也做 远程 ip 的配置,应该能够实现 Homestead 调试。还有 Homestead 需要安装 PHP Xdebug 插件,如果这是继承环境,尝试安装试试。本人比较讨厌用继承环境,应为改东西,不好改,开发不是很灵活。不知道上面的说的对不,我是按虚拟机配置的思路来说的。

1个月前
yexueduxing

@lianglunzhong Homestead 的xdebug配置,可以参考3楼的 链接在Docker中使用Xdebug

1个月前

你好我本地直接同步服务器线上开发,这个可以使用吗,之前好几次没成功。

2周前

不应该是 PhpStorm 吗?

2周前

我可以远程同步更新哦,我只是想远程debug没成功。

2周前

你好我也在使用x_debug. tp项目中断点调试正常,在laravel项目index.php文件里打断点也可以 但是在控制器中打断点不生效,帮忙分析下什么原因?

4天前
yuanshang

@MrBean 你在控制器中一个方法打断点时:这个方法绑定的路由是假如是 '/test',那就在 http://localhost/test 请求下进行xdebug调试

4天前

那个phpstorm的key写错了,我还给他复制下来了,:laughing:

4天前

还是不会用,我这一点击直接跳chrome里面了,404:laughing:

4天前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!