# 前言

PhpStorm 里面的功能太多了,其中的调试功能也容易让人摸不着头脑
这里记录下 PhpStorm 配置和使用 xdebug 调试的过程

参考链接

  • https://www.jetbrains.com/help/phpstorm/debugging-with-phpstorm-ultimate-guide.html#quick-start

# 准备工作

  • php 安装 xdebug 拓展 (2.x 和 3.x 的配置有区别)
  • 浏览器安装 xdebug 插件 (以 chrome 为例,需要科学上网) Xdebug Helper
  • PhpStorm (当前版本 2022.1.4 影响不大看个人)

# php.ini Xdebug 配置

[xdebug]
zend_extension="<path to xdebug extension>"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port="<the port (9000 by default) to which Xdebug connects>"
[xdebug]
zend_extension="<path to xdebug extension>"
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port="<the port (9003 by default) to which Xdebug connects>"

以我的开发环境为例 xdebug 2.x (共享文件夹,本地目录映射虚拟机为例)
remote_host=192.168.0.* (个人 PC 的局域网 ip 地址)
remote_port=19000 (端口默认 9000) 可以自定义设置端口,只要不冲突就行

额外参数介绍

  • 开启 xdebug 时,默认 overload_var_dump=2,因为习我惯 var_dump () 默认的打印,可以设置 0 关掉
    xdebug.overload_var_dump=0

  • PhpStorm 支持在 Just-In-Time (JIT) 模式下使用 Xdebug, 默认 xdebug.remote_mode=req 一般情况不用设置
    xdebug.remote_mode=jit

  • 通过 DBGP 代理进行多用户调试
    官网描述
    xdebug.idekey 设置并为其指定一个您选择的值。此值将用于在 Xdebug 代理服务器上注册您的 IDE。
    xdebug.remote_host 设置 dbgp_proxy_hostname_or_ip
    (具体没试过,不会用到多用户调试,所以看之前别人的教程,一般调试,这个根本不用设置)

# PhpStorm 配置

PhpStorm 支持使用两种最流行的工具进行调试:Xdebug 和 Zend Debugger, 这里介绍 Xdebug
使用 PhpStorm,可以通过 主菜单 运行 / 调试配置 或 不使用它来启动 PHP 调试会话。后一种方法也称为零配置调试。

# 在 PhpStorm 中配置 Xdebug

首先在 主菜单 文件 / 配置 | PHP > 调试 配置中
主要配置就 Xdebug 里的调试端口号 要和 php.ini 的一致 也可以填写多个用逗号分隔 如 9000,9003,19000
其他设置默认就行

1-0

# 零配置调试

在零配置调试的情况下,您不需要创建任何调试配置。
相反,您在浏览器中手动打开 PHP 应用程序的起始页面,然后从浏览器激活调试引擎,同时 PhpStorm 侦听传入的调试器连接。

# 浏览器激活调试引擎

1-1

# PhpStorm 侦听传入的调试器连接

1-2

# 启动调试会话

在浏览器中重新加载页面并返回到 PhpStorm,弹出对话框,选择接受 图 1
此时会自动创建一个服务器配置 可以在主菜单 文件 / 设置 | PHP > 服务器 查看 图 2
重新加载页面,发现还是没有进入调试模式
查看配置后发现,映射路径只映射了 public 目录,手动加上了根目录的映射后,打上断点,再次重新加载,成功进入调试会话 图 3

图 1
1-3

图 2
1-4

图 3
1-5

# 根据配置模板创建配置调试

# 手动创建服务器配置

上面讲到零配置调试,会自动创建一个服务器配置,如果已经有了就不需要创建,没有则手动创建一个
(主菜单 文件 / 设置 | PHP> 服务器)
因为我的环境在 linux 虚拟机里,所以需要做映射

  • 主机填项目的 ip 或者 域名 (测试 ip 需要做映射)
  • 端口号 (项目的端口号)
  • 调试器选择 (xdebug)

1-6

# 使用 PHP 网页调试配置进行调试 (PHP web page)

从主菜单中,选择 运行 / 编辑配置。
点击左上角 + 选择模板 PHP 网页 (PHP web page),开始配置
配置完成后点击右上角的加调试按钮
自动打开浏览器,开始调试

1-7

  • 选择刚刚配置好的服务器
  • 起始也看个人,一般默认 /
  • 选择浏览器,看个人

1-8

# 使用 PHP 远程调试配置进行调试 (PHP Remote Debug)

从主菜单中,选择 运行 / 编辑配置。
点击左上角 + 选择模板 PHP 远程调试 (PHP Remote Debug),开始配置
配置完成后点击右上角的加调试按钮,启动调试会话
需要手动打开网站,并且需要设置浏览器 xdebug 插件
右键 xdebug 图标,展开下拉菜单,点击” 选项 “,IDE 密钥选择 phpstorm
这样就能开始调试了

1-9

  • 选择刚刚配置好的服务器
  • IDE 键 (会话 ID) 自定义填写 一般填 PHPSTORM,以对应浏览器 xdebug 插件的 IDE 密钥

配置窗口
1-10

浏览器 xdebug 插件 选项配置
1-11

# 总结

  • 零配置调试

只要开启右上角监听调试的开关,和启用浏览器插件 xdebug
重新加载网页,就能进入调试会话 (并且会自动创建一个服务器配置)

  • PHP 网页调试

需要手动创建服务器配置
点击右上角,调试按钮,能自动打开网页
会自动创建 为数字的 IDE key

  • PHP 远程调试

需要手动创建服务器配置
点击右上角,调试按钮,需要手动打开网页
并且预设的 IDE key 需要和浏览器插件 xdebug 内 IDE key 的相同

更新于 阅读次数