PHPStorm + Homestead + Xdebug + Chrome Xdebug Helper 调试配置

话说 PHPStorm 写起代码来非常带感,各种提示补全和纠错,以及在 L5 中的命名空间功能更是强大到感动(新建类自动添加命名空间,自动引入命名空间,返回参数命名空间纠正等等)。当然它的调试功能更是让你在出现 BUG 不知所措时抓住的稻草。

下面我将一步一步带你配置这强大到爆功能。但是,这个配置是很简单。

假定你已经安装好了 PHPStorm 和 Homestead,以及chrome,这里不再教你这些了

Homestead 中配置 Xdebug

1.启动你的 Homestead ,并连接进去(按照 laravel 教程的话,MAC下输入 vm 回车即可)

2.命令行下 sudo vi /etc/php5/fpm/conf.d/20-xdebug.ini (注意你的 php 版本和对应的文件夹)

3.复制以下内容进去

zend_extension=xdebug.so

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

4.保存这个文件(如果这个文件不存在的话,这样建立一个软连接过来 sudo ln -s /etc/php5/mods-available/xdebug.ini /etc/php5/fpm/conf.d/20-xdebug.ini

5.重启 php5-fpmsudo service php5-fpm restart(如果使用的是 valet 的话,直接 valet restart 即可)

配置PHPStorm

1.安装chrome扩展 Xdebug helper

2.进入 Xdebug hepler 的配置选项中,选择 IDE key 为 PHPStorm。

xdebug helper

3.把扩展调整为 debug 模式,如图

debug

4.打开你的 PHPStorm 并设置一个测试断点。如图

break

5.依次打开 PHPStorm 中的 Run>Start Listening for PHP Debug Connections。

6.刷新你刚才的页面就会发现弹出了个对话框并且已经开始调试了。

7.最后设置一些你的项目目录,就是你的项目目录对应你映射到 Homestead 的目录。

phpstorm

好了,收工!就是如此简单的操作,需要的时候点开 chrome 的扩展 Xdebug 设置为 debug 即可让你随时调试你的页面。

觉得不错的同学多点赞哈!有问题的同学随时留言。

本帖已被设为精华帖!
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 21

为啥 我一直陪着 只有在index.php里面有效果 项目文件映射也设置了

5年前 评论

很期待你的回复?

6年前 评论

为什么图片看不到。。

2年前 评论

@剑尘 这个问题可能是由于phpstorm版本导致的,将phpstorm版本升到2019.1,目前我是这样解决的。参考stackoverflow.com/questions/556510...

3年前 评论

@剑尘 这个问题解决了吗?我也遇到这个问题了,困扰我好几天了,好郁闷 :pensive:

4年前 评论

忙活了一天,一直不知道什么问题,查了谷歌了一天。最后发现电脑有杀毒软件的原因。。。

4年前 评论
Flex

@剑尘 我和他一样 还是用telescope吧

5年前 评论

file也已经设置了 map目录映射

5年前 评论

file 每次都自动从index.php开始debug 其他的断点没有效果

5年前 评论

@东商通 很抱歉,我现在用的是 valet 。没有 homestead 环境了,不能帮你看这个问题了。

6年前 评论
Summer

点赞 :smile:

9年前 评论

[xdebug] 下面最好再加上一句:xdebug.idekey = PHPSTORM
正好对应chrome浏览器中设置的key。

6年前 评论
OhMyZsh

file
可用,

6年前 评论

@zhuzhichao 试过了,并没有用

7年前 评论

请问php artisan 命令怎么调试呢?比如php artisan queue:listen

7年前 评论
Destiny

:punch: !

7年前 评论

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