找了很久php的xdebug扩展远程调试教程,大都已经过时,现在记录下php配置xdebug远程调试的过程。

适用php版本: php 7 ~ 8

适用安装xdebug3 版本

目录

1. 安装xdebug

关于windows下的安装

关于linux下的安装

2. 配置phpstorm远程调试

1. 全局监听(监听xdebug端口的所有请求,不推荐)

2. 根据配置文件的debug(推荐)

3. 命令行cli调试



1. 安装xdebug

关于windows下的安装

官网下载:Xdebug: Downloads

找到需要的版本下载

解压下载好的压缩包,提取dll文件,放到php的ext扩展目录下 ,

dll文件例如: php_xdebug-3.1.0beta2-7.4-vc15-nts-x86_64.dll

Ps:有可能需要php.ini 中ext指定扩展目录,一般不用设置

如果你不知道下载什么版本,那就去 Xdebug: Support — Tailored Installation Instructions

在命令行输入 php -i 或者打印出 phpinfo() ,复制里面全部的文本内容到链接中输入框,官方会提供下载指引。

安装xdebug后,接下来就是修改php.ini配置文件了

新版xdebug3的配置已经变了,旧的教程已经不合适了,会在php_error.log报错的

Xdebug3需要在php.ini中添加以下配置

Ps:记得改成自己需要的配置

;指定xdebug扩展位置
zend_extension=xdebug-3.1.0beta2-7.4-vc15-nts-x86_64.dll;配置xdebug
[xdebug]
;配置xdebug主机地址
xdebug.client_host = localhost
;监听端口
xdebug.client_port = 9103
;idekey
xdebug.idekey = PHPSTORM
;调试模式建议设置成debug可以打断点调试,默认是default
xdebug.mode = debug,trace

以上就是最少的xdebug配置了,想知道更多xdebug配置介绍可以去官网看看 Xdebug: Documentation » All settings ,里面都有介绍什么配置有什么功能。

最后可以在命令行输入php -m 查看是否安装xdebug成功

关于linux下的安装

官网首页都有Linux安装示例了,自己看 Xdebug: Documentation » Installation

2. 配置phpstorm远程调试

示例phpstorm版本2022.2.5,因为phpstorm不同版本功能与布局不太一样,所以使用方式也因版本不同。

全局debug配置

点击蓝色的validate链接可以验证当前配置是否正确。

配置主机映射

设置主机映射,用于在浏览器访问时,phpstorm能够根据url链接路径映射到实际的运行文件,可设置多个,不同的项目使用不同的设置。根据实际情况设置,我这里设置一个就行了。用的是thinkphp6,指向的是项目根目录(也可以是public目录,自己根据需要填写),主要是匹配你的web服务程序的真实目录与运行目录,比如在docker内的nginx的运行目录是\data,但文件真实存在别的地方。

PS:如果IDE能自动识别也就不用勾选 use path mappings 了,不过我看大部分情况都是识别不了

 1. 全局监听(监听xdebug端口的所有请求,不推荐)

开启电话图标代表监听所有对php的请求,不区分请求服务的域名,当有请求到php时就会触发xdebug拦截,请求越多弹出的debug窗口越多,缺点是难以判断是哪个请求产生的debug。

2. 根据配置文件的debug(推荐)

在右上角的 Run/Debug Configurations 配置处创建调试配置,也适用与命令行cli调试。

下图是完整配置,创建并选择调试配置文件。

配置好后就可以打上断点,点击小甲虫调试图标就可以开始调试了。根据配置文件的debug有一个好处就是可以区分是哪个项目触发的,当同时有多个请求会自动阻塞排队,一个一个执行debug。

接下来可以在浏览器使用以下两种方式调试:

方法一:

浏览器url 后面加上XDEBUG_SESSION_START=1 首先 ,这个 XDEBUG_SESSION_START 是必须的,但是他的值是可以随便填写的。

如:https://xxxx.com?XDEBUG_SESSION_START=1

参考文档:  Xdebug: Documentation » All settings

方法二:

在浏览器安装 Xdebug helper 调试插件,至于怎么安装,请自行百度。

这个工具会自动帮你设置,只不过他是在 cookie 里面设置,依赖cookie。

安装完成后,需要先配置,右键扩展栏的虫子图标,选择选项。

大功告成,现在可以开始调试了,使用浏览器访问url会自动停在断点处,有时候调试自动断开 nginx 返回 504这是因为你没有调整 PHP 和 FPM 以及 Nginx 的最大执行时间,修改到一个较大的值即可。

参考文档:

https://segmentfault.com/a/1190000019775071

PhpStorm配置Xdebug调试 - 艾薇-Ivy - 博客园

3. 命令行cli调试

如果你想对命令行cli运行的脚本进行调试,可以这样配置

创建与选中php scripti脚本调试配置后点击小虫子即可开始调试,可以在脚本中打断点了!!

注意:xdebug只能调试传统php开发模式,不能调试Swoole与Workerman

等什么时候有空再发docker下的xdebug/swoole远程调试教程,如果会变通的话上述配置是可以修改为远程调试服务器的教程的,等有空再发详细教程吧

php xdebug远程调试配置(含cli模式)相关推荐

  1. Spark远程调试配置,在IDEA中的配置

    关于Spark集群部署参考:http://blog.csdn.net/tototuzuoquan/article/details/74481570 一.Spark远程调试配置: #调试Master,在 ...

  2. 【转载】pycharm远程调试配置

    pycharm远程调试配置https://www.cnblogs.com/liangjiongyao/p/8794324.html

  3. 宝塔 开启xdebug_宝塔安装及Xdebug断点调试配置

    宝塔安装及Xdebug断点调试配置 WINDOW安装: 1.首先在此网站 https://www.bt.cn/ 下载宝塔: 2.安装在D盘中,安装完成后在软件面版的右上角菜单设置账号和密码: 3.访问 ...

  4. NetBeans配置Xdebug 远程调试PHP

    很多PHP程序员使用echo,dump等比较原始的方法调试,这是非常落后的. 几年前本人写过一篇: NetBeans配置Xdebug 由于那篇文档还需要引用本人写的其他文档,感觉有些分散,所以这里重新 ...

  5. xdebug 远程调试

    ---------------------------------------------------- 下面的链接下载对应版本的xdebug. https://xdebug.org/download ...

  6. phpstorm+xdebug远程调试

    远端:centos7 phpstorm在windows上. centos7上同上一篇文章, [xdebug] zend_extension="xdebug.so" xdebug.r ...

  7. VSCode XDebug 远程调试虚拟机CentOS7上PHP项目

    声明 以下[参考]链接,如有侵权,请联系删除,在此先感谢在网络上无私奉献的人们~ 如有错误,请联系更正 文章目录 声明 背景 本机配置 虚拟机配置 1. 设置代码文件共享 2. 修改xdebug配置 ...

  8. php linux 调试工具,内网Visual Studio Code通过XDebug远程调试linux服务器PHP脚本

    开发环境是这样:一台位于内网环境下的Windows机器使用VSCode作为IDE编写 { "version": "0.2.0", "configura ...

  9. VS code 远程调试配置

    VS code 是微软的轻量级但功能强大的IDE,可扩展的插件众多,基本可以满足所有开发需求.本文介绍使用VS code进行远程调试代码的方法. 环境 Win 10 x64 操作系统 安装 VS co ...

最新文章

  1. Linux用户管理-服务管理
  2. lombok链式调用_记一次使用 Lombok 翻车造成的事故!
  3. ES6常用知识总结(20%的知识占80%的份额)
  4. Vs + Qt 编译 .ui 文件
  5. Leo的AR代码学习之create-react-class
  6. 基于原生javascript的ajax实现
  7. 快进键启动,一文带你了解云原生时代容器安全
  8. MySQL高可用--MGR入门(2)组复制监控常用相关表
  9. 董明珠谈接班人标准:不看亲属、朋友关系,只看一点
  10. asp.net中后台javaScrip的使用
  11. 第二节 中国的行政区划
  12. 强者越强-效率与公平的幂律视角
  13. vue基于file-saver处理二进制文件流,导出文件
  14. Unity使用微软SDK实现文字转语音
  15. 【SVG】svg入门
  16. 蓝桥杯 基础练习VIP FJ的字符串 java
  17. java中json数据_Java中json的使用 解析json数据
  18. 六十五、Spark-综合案例(搜狗搜索日志分析)
  19. 2021年私域流量的力量会更强劲!
  20. 测试5g网速的软件排行榜,5G网速测试

热门文章

  1. OpenRTMFP/Cumulus Primer(21)经由服务器的发布/订阅流程的关键点
  2. python从数据库读取几百万条的数据结果内存直接爆掉
  3. win10系统笔记本电脑设置合盖睡眠/不休眠的方法
  4. 在word文档中打印大号字
  5. 站在科技和人文的路口,苹果带来了史上最便宜的发布会
  6. 解决 ping命令-请求超时 问题
  7. 图片像素大小怎么调整?图片改大小尺寸的具体方法
  8. MFC中CString.Format的详细用法和进制转换
  9. K-近邻近算法 带代码
  10. 开发微信公众号授权失败