phpstrom xdebug

PhpStorm Xdebug

一、背景

使用Xdebug协助代码debug原因无非以下几种:

  1. 一行行代码echo、var_dump 比较耗时,重复请求
  2. 查看前辈的复杂的业务代码逻辑追踪比较累
  3. 想研究追踪分析下YII2 、Lumen等框架源代码

本教程并非重复造轮子

  1. 网上很多PhpStorm + Xdebug 配置繁杂,望而却步
  2. 配置debug方式单一,缺乏多种配置方式整理
  3. 坑太多,往往根据他们的配置走,有时往往不能实现最终效果

二、环境准备

Xdebug扩展安装

方式一:

直接访问Xebug官网:Xdebug: Downloads,进行对应php版本选择下载。

phpstrom xdebug
TS版本是PHP版本支持并开启线程安全

方式二:wizard 自动匹配Xdebug版本

phpstrom xdebug
相信大家可以看到红框什么意思了吧

注意:尽量使用Xdebug2.X版本,因为Xdebug3.X版本配置项与2.X有很大差异。以下采用Xdebug2.X.

三、单人调试-几种分类配置

本地调试

即web服务器部署和PhpStorm处于相同机器下:web服务器部署在本地开发机上的虚拟机中

配置调试方式如下:

步骤一:php.ini配置

[xdebug]
zend_extension = xdebug.so
xdebug.remote_host = 192.168.128.243  # PhpStorm所在机器的ip地址
xdebug.remote_port = 9010 # PhpStorm所在机器监听端口号
xdebug.remote_enable = 1  # 必须要开启
xdebug.remote_autostart = 1 # 自动开始远程调试, 如果开启则不用再每个request请求url中加入?XDEBUG_SESSION_START=
xdebug.idekey = PHPSTORM  #
xdebug.remote_log = /tmp/xdebug-log

步骤二:PhpStorm Debug端口配置

phpstrom xdebug
PhpStorm Settings配置

步骤三:PhpStorm Server代码映射配置

phpstrom xdebug
PhpStorm Server配置

步骤四:浏览器访问:192.168.87.55:51100/

phpstrom xdebug
PhpStorm 收到断点调试

远程调试-回访通道可达

web服务器部署在远端服务器,PhpStorm处于windows开发机上。但是远程服务器上的Xdebug可以同PhpStorm 监听的端口进行建立链接。

配置调试方式如下:

步骤同本地调试

远程调试-回访通道不可达

web服务器部署在远端服务器,PhpStorm处于windows开发机上。但是远程服务器上的Xdebug无法同PhpStorm 监听的端口进行建立链接。

[1]Remote debugging via SSH tunnel

配置调试方式如下:

步骤一:php.ini配置

[xdebug]
zend_extension = xdebug_module_goes_here // xdebug.so路径
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1 // 本地ip,因为会通过ssh tunnel建立和PhpStorm所在ip+port连接
xdebug.remote_port=9000    // ssh tunnel 监听的port

步骤二:设置到远程计算机的SSH隧道

原理

phpstrom xdebug
PhpStorm官网图
  • PhpStrom 环境: macOS / Linux:
ssh  -R 9010:127.0.0.1:9010 wangyanhao@192.168.87.55
# 将PhpStorm所在ip:127.0.0.1:9010 映射到 web服务器所在ip:192.168.87.55:9010上
  • PhpStorm 环境: Windows
# 注意这里一定要在Windows PowerShell中执行
ssh  -R 9010:127.0.0.1:9010 wangyanhao@192.168.87.55
phpstrom xdebug
建立ssh Tunnel

步骤三: 浏览器访问:192.168.87.55:51100/?XDEBUG_SESSION_START=phpstorm

phpstrom xdebug
弹出代码映射窗口

四、多人调试

原理

phpstrom xdebug
PhpStorm官网多人调试

意义

启动调试会话时,Xdebug扩展连接到PhpStorm运行的IP地址,需要配置参数: xdebug.remote_host(用于Xdebug 2)或xdebug.client_host(对于Xdebug 3)。
PhpStorm接受这个连接,并可以通过它与Xdebug通信。Xdebug只支持连接到单个IP地址,并且由于安全原因,不会自动连接回运行浏览器的IP地址。
为了在多用户环境中调试PHP应用程序,Xdebug提供了一个所谓的DBGp代理.
【简短来说:其实就是 Xdebug 的 xdebug.remote_host 限制了调试人数,需要下载 DBGp 代理实现多用户调试】

实现方案

直接修改php.ini(不一定好使)

# 直接开启xdebug.remote_connect_back=1 ⾃动记录IDE地址
[xdebug]
zend_extension="xdebug.so"
xdebug.remote_enable=1
xdebug.remote_connect_back=1 # ⾃动记录IDE地址
xdebug.remote_port=9999
xdebug.idekey=PHPSTORM

使用DBGp代理(官网给出的解决方式,有坑)

步骤一:下载安装DBGp

DBGp代理服务安装位置:
    条件: 需要web server和开发者机器都可以连接的服务器上
    位置: 可以在web server服务器(**这里采用**) / 可以通过SSH tunnel可以连接的单独服务器
下载地址:
    https://xdebug.org/download#dbgpProxy
启动DBGp代理:
    https://zhuanlan.zhihu.com/p/dbgpProxy -i 192.168.87.55:9010 -s 127.0.0.1:9002
参数解读:
    -i : 监听的开发者ide的ip+端口,phpstorm需要连接到该ip+端口
    -s : DBGp代理所在服务器的ip+端口
phpstrom xdebug
开启DBGp代理

步骤二:web服务上安装并配置了Xdebug 2.X扩展(我这里使用的2.8.1版本)

[xdebug]
zend_extension="<path to xdebug extension>"
xdebug.remote_enable=1
xdebug.remote_host=dbgp_proxy_hostname_or_ip
xdebug.remote_port="<the port (9000 by default) to which Xdebug connects>"

步骤三: 配置从PhpStorm访问DBGp代理服务器的权限

  • 进入PhpStorm,菜单栏:Tools-> DBGp Proxy -> Register IDE
phpstrom xdebug
PhpStorm配置DBGp
phpstrom xdebug
将PhpStorm注册成功到DBGp代理上
  • 配置ide key: 注意: 每个开发者唯一标识,用于区别每个xdebug会话
  • 连接成功标识:
    DBGp日志: 07:35:26.900 [info] [proxyinit] [sishen007-ide-key] Added connection for IDE Key 'sishen007-ide-key': 10.20.100.93:9000
    PhpStorm: 提示Xdebug proxy: IDE successfully registered with ide key 'sishen007-ide-key'
  • 修改配置: 菜单栏:Tools-> DBGp Proxy -> Configuration
  • 删除配置: 菜单栏:Tools-> DBGp Proxy -> Cancel IDE Registration

步骤四:PhpStorm中开启监听

点击菜单栏上电话监听按钮开启监听

步骤五:在浏览器中启动调试会话

使用Chrome扩展: jetbrains.com/help/phps
配置ide key为自定义ide key

不使用Chrome扩展: 直接在访问的url: 192.168.87.55:51100/?

phpstrom xdebug
这里坑的地方,连接拒绝

原因分析: IDE not connected: dial tcp 10.20.100.93:9010: connect: connection refused

看官网距离是web服务器、IDE、DBGp同处于统一网络下。故如果使用远程调试-回访不可达则有问题。

好了,先写到这里吧,有时间再补充下更细致的原理。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/4741.html

(0)
上一篇 2024年 3月 7日
下一篇 2024年 3月 7日

相关推荐

  • phpstrom 激活码

    Intellij idea、phpstorm、webstorm、pycharm永久免费提供激活码(永久更新) 请注意,本文编写于 662 天前,最后修改于 644 天前,其中某些信息可能已经过时。 永久免费提供Intellij idea激活码2020,idea激活码2021,pycharm激活码2020,pycharm激活码2021,phpstorm激活码2…

    2024年 3月 7日
  • strom激活码

    WebStorm 2023.2激活教程 Mac/Windows/Linux(亲测可用) 本文讲的是Webstorm2023.2激活教程,本教程适用于mac、windows、linux等操作系统,本文先讲Mac / Linux激活,再讲windows激活。 Mac 1. 安装WebStorm 去官网 https://www.jetbrains.com.cn/w…

    2024年 3月 7日
  • phpstrom激活码2022

    2022PhpStorm最新激活码教程 复制下面 账号和密码/激活码 登陆就可以使用了! 方式一:激活码登陆 Y6FGFD0B6-eyJsaWNlbnNlSlBXUyIsInBhaWRVcFRvIGFIUFYggfiuygt87r68778tFTFUFRfiufTDHGjoIGuf87fofo8firpFnO0zrmMWcz1q2UWJNuGTh0rwi+p…

    2024年 3月 7日
  • phpstrom永久激活码

    最新phpstorm永久激活码2022全年有效! 一、phpstorm激活码,免费! 如果下边这个phpstorm激活码过期失效了的话,大家可以按下面的方法最新有效phpstorm激活码 phpstorm激活码下载:  “PHP大神”  sigusoft  “激活码”  即可最新phpstorm激活码 二、phpstorm快捷键简述 PHPStorm就是一神…

    2024年 3月 7日
  • phpstrom 破解

    详解phpstorm2020最新破解方法 推荐阅读: PHPStorm2020.1永久激活及下载更新至2020(推荐) https://www.jb51.net/article/195806.htm PHPStorm 是 JetBrains 公司开发的一个轻量级且便捷的 PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及…

    2024年 3月 7日
  • phpstrom激活码失效

    PHP编码开发调整运行工具PhpStorm 2022汉化激活码 PhpStorm 2022采用了前沿的前端技术,可以和HTML 5,CSS,Sass、TypeScript、Emmet进行更好的融合,轻松编写xml、json、html、css、JavaScript以及php代码,旨在为用户提供编辑PHP,HTML,CSS,JavaScript,XML解决方案。…

    2024年 3月 7日
  • webstrom破解码

    webstorm破解激活2023最新永久教程「亲测有效」 本文讲的是2023最新的webstorm破解激活教程,包含windows和mac苹果电脑的操作,先讲windows,再讲mac 首先去官网下载webstorm: https://www.jetbrains.com/webstorm/download/#section=windows 选择ultimat…

    2024年 3月 7日
  • phpstrom激活码2020

    What’s New in PhpStorm 2020.3 PHP 8 PHP 8.0 is a major language update with many incredible new features. PhpStorm will help you verify that your existing code is compat…

    2024年 3月 7日
  • phpstrom激活码2021

    Phpstorm激活码2021版开始永久有效(所有版本) 一、文章第二条phpstorm激活码,可激活所有phpstorm版本 PhpStorm2021.3的小更新发布了,该版本带来一些修复和少量改进: 修复:索引 WSL 项目时 IDE 冻结并挂起,补充:能够生成文件模板的文件名,添加:切换编辑器选项卡的快捷方式切换 Big Sur 上的项目选项卡,已修复…

    2024年 3月 7日
  • phpstorm激活码2021

    Phpstorm激活码2021版开始永久有效(所有版本) 一、文章第二条phpstorm激活码,可激活所有phpstorm版本 PhpStorm2021.3的小更新发布了,该版本带来一些修复和少量改进: 修复:索引 WSL 项目时 IDE 冻结并挂起,补充:能够生成文件模板的文件名,添加:切换编辑器选项卡的快捷方式切换 Big Sur 上的项目选项卡,已修复…

    2024年 3月 7日
  • phpstrom2021破解版

    PhpStorm2021(PHP编程软件) V2021.5破解版 Tags: PhpStorm2021是JetBrains 公司开发的一款商业的PHP集成开发工具,为广大编程程序员们提供了全面的开发环境,并且还支持多种开发语言,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查,为程序员提供更为效率的PHP开发,旨在有效提高用户的工作效率! P…

    2024年 3月 7日
  • webstrom激活码

    【永久可用】webStorm激活码(2023webStorm最新激活码) 正在开发,突然激活码到期了?别着急,这里给你提供解决的办法!!! 更新日期:2023.06.13 最新激活码方式:www..com 一:直接复制下面最新的 账号和密码/激活码 登陆就可以使用了了! 方式一:激活码登陆(如果失效了,可以到www..com中重新) DBCT65HRPA-e…

    2024年 3月 7日
关注微信