PhpStorm+Postman+xdebug构建远程调试环境

本文只讲环境搭建,不涉及具体原理。

出发点:使用xdebug对php项目进行调试

工具准备:

1、ubuntu18 (开发环境)
2、phpstorm (IDE)

前提:已搭建好lnmp开发环境

首先,我们需要安装xdebug,开启php的xdebug扩展

  • 安装命令:
pecl install xdebug
  • 修改php配置文件php.ini
vi /usr/local/php/etc/php.ini

在最后面加入如下配置:

[xdebug]
zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so"
xdebug.idekey=PHPSTORM
xdebug.remote_host = 192.168.31.165
xdebug.remote_port = 9001
xdebug.remote_handler = dbgp
xdebug.auto_trace = 1
xdebug.remote_autostart = 1
xdebug.remote_log = /tmp/xdebug.log

简单说下各项配置的含义:
zend_extension     xdebug扩展so文件位置
xdebug.idekey     与IDE通信的key值,待会在phpstorm也需要用到
xdebug.remote_host  IDE所在的主机IP地址
xdebug.remote_port  通信端口,不可与php和nginx通信的9000重复
xdebug.remote_autostart自动开始

  • 加入配置后,需要重启下php-fpm,这里以lnmp一件安装包命令为例
lnmp php-fpm restart

phpstorm配置

  • phpstorm的php解释器配置(因为用的是远端的php解释器,所以要重新配置)
进入配置面板 File | Settings | Languages & Frameworks | PHP

点击新增一个php解释器:

这里选择连接即可

  • 配置debug服务
进入配置面板 File | Settings | Languages & Frameworks

配置端口,和刚才在php.ini对应

  • 配置DBGp

这是一种语言和UI的通信协议:https://xdebug.org/docs-dbgp.php

DBGP - A common debugger protocol for languages and debugger UI communication

key填写的和xdebug.idekey字段值一样
主机填写待会web服务访问的地址,填写IP地址也行

  • 添加server

远程调试的话,需要勾选路径映射选项,即本地主机项目的路径和远端项目的路径。

  • 配置调试选项

:在这一步,要注意一点是很多网上写着是设置PHP Web Application,但是其实新版的phpstorm已经修改了这个的名称为:
PHP Web Page

进入配置面板

新增

填写好配置信息后,点击应用,会在左侧列表新家一个PHP Web Page选项

  • 接着,选择我们刚才创建选项

如下图,点击开始监听php服务器发过来的调试信息

点击开始调试,会自动弹出浏览器访问web服务器。到此,已经完成了2/3了,接下来就是如何配合着Postman使用了

postman请求

其实使用postman来进行请求也简单,在我们刚才点击开始调试的时候,弹出的浏览器地址后面会待着一个很像是通信编号的数字,没错,使用postman的关键是,要在请求地址添加XDEBUG_SESSION_START=14481,这样,即使通过postman来请求地址时,也会将调试信息发送到我们的IDE上。

phpstorm的Debugger面板信息:

最后,若是有什么问题,可以看下xdebug的log,路径为xdebug.remote_log = /tmp/xdebug.log

你可能感兴趣的:(调试工具,phpstorm,php)