10月08, 2018

vagrant + phpstorm + xdebug 配置教程

一、安装xdebug扩展

wget https://xdebug.org/files/xdebug-2.6.1.tgz
tar xvzf xdebug-2.6.1.tgz
cd xdebug-2.6.1
phpize
./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
make
make install


修改php.ini,加入以下配置:

zend_extension=xdebug.so
xdebug.idekey = "vagrant"
xdebug.default_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_handler="dbgp"

上面配置中 xdebug.idekey 是作为一个标识,到时候要在phpstorm中配置这个标识。remote_port 是端口号,也要在phpstorm中配置


二、PhpStorm配置

1.配置xdebug

打开 settings -> Languages & Frameworks -> PHP -> Debug,配置端口号,和上一步中的xdebug.remote_port 对应

1.jpg

2.配置DGBp Proxy

配置 settings-> Languages & Frameworks -> PHP -> Debug -> DBGp Proxy

QQ截图20181008132820.jpg

IDE key是和php.ini中配置的 xdebug.idekey 一致

Host为你调试项目是访问的IP或者域名,假设你的访问路径为“http://127.0.0.1/…”,那这里配置成127.0.0.1;


3.配置server

添加server,主要配置项目目录所在的路径的映射关系。右边是项目在vagrant中的路径。

3.jpg

4.配置运行环境

点击Run-> Edit Configurations

4.jpg

点左上角+号,选择PHP Web Page

5.jpg

server那一栏选择刚才配置的server

6.jpg

然后点击Run-> Start Listening for PHP Debug Connections 就可以开始设断点调试了

7.jpg

或者

8.jpg


三、安装 xdebug helper

Xdebug工作原理

IDE(如PhpStorm)已经集成了一个遵循DBGP的Xdebug插件,当开启它的时候,会在本地开一个Xdebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个服务就会监听所有到9000端口的链接。在PhpStorm中,位于:工具栏 > Run > Start / Stop Listening for PHP XdebugConnetions。

 

当浏览器发送一个带 XDEBUG_SESSION_START的参数的请求到服务器时,服务器接受后将其转到后端的php处理,如果php开启了xdebug模块,则会将debug信息转发到客户端IP的IDE的调试端口上。当参数或者cookie信息中不带XDEBUG_SESSION_START,则不会启动调试。这就为后续在浏览器中添加开关提供了可能。Xdebug的官方给出了一个示例图:很好的展示了相互调用关系。这个示例图是绑定了ip,即使用了固定ip地址,xdebug.remote_connect_back=0 ,也是Xdebug的默认方式,这种情况下,Xdebug在收到调试通知时会读取配置xdebug.remote_host和 xdebug.remote_port,默认是 localhost:9000,然后向这个端口发送通知,这种方式只适合单一客户端开发调试。我们这里配置xdebug.remote_conncet_back=1,可接受多客户端开发调试。

dbgp-setup.gif

12.gif

xdebughelper是一款chrome插件,和phpstorm、eclipse、netbeans等IDE协同工作方便调试。这个安装很简单,到谷歌商店()直接安装,或者百度一下。安装好后,在选项里设置IDE为phpstorm就可以了。

9.jpg


四、调试

  1. 启动xdebug helper:点击xdebug helper图标,选择Debug项,灰色图标变成绿色

  2. 10.png

2.在phpstorm中将需要调试的代码打上断点(在行号旁边点击一下即可),点击右上角电话图标开启调试监听,由一头绿一头红变成两头绿即可

11.png

3.用浏览器或者postman访问地址的时候,在phpstorm的debugger窗口可以看到调试信息。Debugger窗口上方的的这些箭头就是断点执行的按钮(如果断点执行完毕则重新访问,再次断点调试)

本文链接:https://lxyit.com/article/show/160.html

-- EOF --