PHP远程调试环境搭建一:PHPStudy+Xdebug2+PHPStorm+Xdebug Helper

主要参考以下这篇文章:

PHPStudy+Xdebug2+PHPStorm 远程调试

一. 实验环境

Web 服务器端

VMWare+Win10+PHPStudy+php7.3.4nts+Xdebug2

VMWare+Win10:PHPStudy 所在的机器 IP -- 192.168.124.136

PHP IDE 客户端:

物理机+Win10+PHPStorm

物理机:PHPStorm 所在的机器 IP -- 192.168.10.165

二. Web 服务器端配置

php7.3.4 自带 Xdebug 扩展

php7.3.4,自带 Xdebug 扩展。如下:

图片

虽然自带 Xdebug,但默认情况下,是没有开启 Xdebug 的。

如下:php.ini 中的 [Xdebug] 节是空的。

图片

开启 php7.3.4 自带的 Xdebug

勾上 xdebug 扩展,如下:

图片

勾上 xdebug 扩展之后,需要重启 Nginx/Apache 才能生效,然后通过 phpinfo() 输出进行如下验证:

图片

可见 Xdebug 扩展的版本是 2.7.2。

勾上 xdebug 扩展之后,php.ini 新增内容如下:

图片

可以看到 xdebug.remote_enable=Off,即远程调试默认是关闭的。

Xdebug2 远程调试正确配置

修改 php.ini 配置,开启 Xdebug 远程调试,按照如下格式进行修改:

; 指定 Xdebug 扩展 dll 的绝对路径zend_extension=xxx/xxx/php_xdebug-2.9.8-7.2-vc15-x86_64.dll; 开启远程调试xdebug.remote_enable=on; 指定通信协议xdebug.remote_handler=dbgp; 指定 IDE 调试机的 IPxdebug.remote_host=localhost; 指定 IDE 调试机的端口xdebug.remote_port=9000; 指定通信口令xdebug.idekey=PHPSTORM

php.ini 配置好之后的效果,如下:

图片

修改完 php.ini 之后,需要重启 Nginx/Apache 才能生效。

图片

图片

三. IDE 客户端配置

IDE 客户端:PHPStorm。

远程 Xdebug 通信配置

注意:如果 PHPStorm 报错 9000 端口被占用,可以改成 9007,同时将服务器端的 php.ini 文件中的 9000 改成 9007。

这表示,PHPStorm 使用本地端口 9007,与远程 Xdebug 进行通信。

实际的通信过程应该是:PHPStorm(9007) <--> DBGp 代理客户端(9001) <--> Xdebug。

图片

DBGp Proxy 配置

PHPStorm 使用 dbgp 协议与远程的 Xdebug 扩展进行通信。需要配置以下基本信息:

IDE key:123456,即通信的口令。

Host:192.168.10.165,即 DBGp 代理客户端,使用哪个 IP 与远程 Xdebug 通信。

Port:9001,即 DBGp 代理客户端,使用本地哪个端口通信。可以复用 9000。

图片

远程 Servers 信息配置

新建一个远程服务:

图片

随便填写一个服务的名称:Remote Server。Host 填 Xdebug 所在 IP。

图片

Run/Debug Configurations 配置

在 PHPStorm 的右上角,点击【Add Configuration】,新建一个 Run/Debug Configurations 配置。

图片

点击【+】,新建一个 PHP Web Page。

图片

选择上面新建的 Server:

设置 Start URL:

图片

远程调试方式一

点击【小电话】开始监听:

图片

点击【bug虫】启动调试:

图片

同时会在本地启动一个指定的浏览器:

图片

Use Path Mappings

上面的调试中,可以看到如下报错:

图片

设置 Path Mappings:

File/Directory --> IDE 本地路径

Absolute path on the server --> 服务器端路径

图片

设置好路径映射之后,开始调试,如下所示:

图片

可见,没有再报错了,而且可以看到调用栈。

PHP Web Page 调试方式缺点

每次都得填充一次 Start URL,才能调试新的请求。

远程调试方式二

浏览器扩展 Xdebug Helper

浏览器安装 Xdebug Helper 插件的好处是,方便在浏览器上随时启动调试,将调试信息发送给 IDE(如:PHPStorm,需要 PHPStorm 开启监听)。

安装浏览器插件 Xdebug Helper

打开 chrome 应用商店,需要科学上网:

图片

在搜索框中搜索 “Xdebug”,如下:

图片

点击进行安装,如下:

图片

设置 Xdebug Helper

打开 Xdebug Helper 扩展的选项:

图片

图片

Xdebug Helper 设置的 IDE Key,必须得和 php.ini 中配置的 xdebug.idekey 保持一致。

图片

图片

浏览器访问页面触发调试

点击下面灰色的【Xdebug helper】:

图片

弹出如下框:

图片

点击上面的【Debug】,图标变成绿色的,表示 Xdebug Helper 开启了 Debug 模式。如下:

图片

PHPStorm 开启监听

图片

直接在 IDE 本地浏览器中访问 Web Page:

图片

可以看到,PHPStorm 断下来了:

图片

发现,新增了一个 localhost 的 server 配置:

图片

这是在 Xdebug Helper 浏览器中第一次访问 web page 时,没有对应的 server 配置,PHPStorm 弹框请求新建的。

这种调试方式, Xdebug Helper 取代了 PHPStorm 中的 DBGp Proxy。

调试过程中的通信应该是:PHPStorm <--> Xdebug Helper(IDE 所在机器的浏览器) <--> Xdebug(Web 服务器端)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值