咚咚技术团队
  • 首页
  • 文章
    • 前端
      • 0.1 + 0.2 精度丢失深究
      • IOS H5 视频无法播放
      • H5 播放 amr 音频文件
      • IOS 10.x 版本在 Taro 中的兼容性问题
      • 百度 UEditor 引发的 cross-iframe 问题解决方案
      • 访问 www.banchengyun.com 时发生了什么
      • decodeURIComponent 与特殊符号
      • 前端埋点
    • 后端
      • Swoole 相关
        • MAC 本地环境执行 GuzzleHttp 时导致 Swoole 进程异常退出
      • Hyperf 相关
        • 在 phpstorm 中调试 hyperf 代码
        • Hyperf 1.x Proxy 缓存失效问题
      • K8s 相关
        • 搭建 k8s 集群
        • 使用 docker-compose 快速搭建 Hyperf + Redis 开发环境
        • Kubernetes Autoscaler
      • 其它
        • 幂等性和原子性
    • 测试
    • 效能提升
      • 优秀开发者的第一步:始于需求分析
      • 优秀开发者的第二步:如何阅读他人的代码
  • 活动
  • 课堂
  • 知识库
    • 公共
      • 什么是流程型组织
      • 半城云集成产品开发流程
      • 阿⾥云 Codeup 代码平台使⽤ & 迁移指南
      • git 使用规范
      • 关于第三方与服务号授权的问题
      • 收不到消息的排查方法
      • 系统安全
      • 前端编码规范
      • 后端编码规范
      • 测试规范
    • 前端
      • 规范
        • 前端编码规范
        • 咚咚技术栈
        • code-review 规范
        • git 工作流
        • Tapd 文档
      • 复盘经验
        • 2021.01 效能、规范、技术债讨论会
      • Code Review
        • SCRM 2020-07
    • 后端
      • 复盘经验
        • SCRM 2020 年 8 月
      • Code Review
        • SCRM 2020-07
    • 测试
      • 复盘经验
        • SCRM 2020 年 8 月
  • 项目文档
    • 前端
    • 后端:小程序
    • 后端:企业微信
  • 接口文档
  • 兴趣小组
    • golang 小组
    • 增长小组
    • 前端小组
  • 书单推荐
  • 生产环境 分析会
    • NO.2022.01
  • 生产环境 可用性
  • 团队活动
    • OpenTalk
      • NO.2021.Q3
      • NO.2020.Q2
    • WalkTogether
  • 关于我们
  • GitBook 使用说明
由 GitBook 提供支持
在本页
  • 安装
  • 配置sdebug
  • phpstorm的配置

这有帮助吗?

  1. 文章
  2. 后端
  3. Hyperf 相关

在 phpstorm 中调试 hyperf 代码

上一页Hyperf 相关下一页Hyperf 1.x Proxy 缓存失效问题

最后更新于2年前

这有帮助吗?

php常用的调试器是xdebug,不过hyperf是基于swoole,而swoole不支持xdebug。swoole官方基于xdebug魔改了一个swoole调试插件-sdebug。

我的电脑是使用WSL的,因此本文的配置是基于WSL ubuntu的。理论上可以应用所有系统与虚拟机。

见地址:

安装

# 拉取sdebug代码
git clone https://github.com/swoole/sdebug.git
# 进入目录
cd sdebug
# 编译
./rebuild.sh

以上编译完插件之后,需要将sdebug插件加入到php.ini中。

# 查看php的配置
php --ini
# 编辑php.ini配置文件
vim xxx/php.ini
# 添加一行
zend_extension="xdebug.so"
# 查看是否配置成功
php --ri sdebug

如果php --ri sdebug能够查到扩展的信息,说明扩展成功安装。

配置sdebug

# 开启xdebug扩展
zend_extension=xdebug.so
# 开启远程调试
xdebug.remote_enable =1
# 设置远程的ip
xdebug.remote_host=phpstorm所在机子的ip
# 自动启动调试
xdebug.remote_autostart=1
# 设置远程的调试端口
xdebug.remote_port=9000
xdebug.remote_connect_back=1

phpstorm的配置

在phpstorm中,需要将php路径映射为远程的路径。因此在配置php cli的时候,需要配置一些信息:

红圈中的配置要取消掉,不然请求时swoole的子进程会卡死。

这里还需要配置php cli的。需要将php的cli配置正常,并且命令行的选项需要增加一个配置xdebug.remote_host,该选项配置为phpstorm所在机子的ip地址。

配置完php cli之后,还需要配置以何命令启动php。

我们之前是在命令行启动php bin/hyperf.php start,现在需要如同这么配置。配置完成之后,点击调试按钮启动,这个时候使用postman请求某个接口,就能够调试了:

除了调试请求外,也能够调试脚本。脚本的话,也需要配置多一个命令:

这么配置之后,使用调试按钮启动之后就能够调试命令行。

sdebug