PhpStorm连接容器内的XDebug进行断点调试

php进行断点调试尽管不像其他语言那样方便,但是有些是有确实有其用处,比如调试循环内的数据异常时。在php于phpstorm都安装在同一环境下时,配置phpstorm的xdebug调试并不是多困难的事情,但是如果你使用了docker容器来安放你的php环境时,他们之间的配合工作就不是那么简单容易的了,下边介绍一下如何使phpstorm连通docker容器内的php xdebug

请注意,该方法由于需要docker容器能够与宿主机进行网络通信,因此对于mac上的docker容器不可用(mac的docker使用linux vm技术实现,默认无法与本地网络实现通信,但是也可以通过其他方式曲线救国,这里不讲),但是mac上的phpstorm可以使用该方法连接远程linux服务器上的docker容器内的php xdebug

配置docker容器内的php xdebug环境

在docker容器中安装好php-pecl-xdebug扩展之后,编辑/etc/php.d/下的*-xdebug.ini文件(如果没有该文件也可以直接写在php.ini文件末尾)

  • 将xdebug.remote_enable参数设置为1
  • 将xdebug.remote_host参数设置为你的宿主机IP(如果你的phpstorm安装在你的宿主机,否则指向你phpstorm所在机器的IP)
  • 将xdebug.remote_port参数设置为你要使用的端口(默认为9000)

配置phpstorm

  • 打开phpstorm的设置:PhpStorm->Preferences(command + ,)
  • 配置languages & Frameworks->PHP->Debug页面中xdebug项的debug port为你容器中xdebug设置的端口
  • 配置languages & Frameworks->PHP->Servers页面,添加Server

配置phpstorm的debug

  • 打开phpstorm的设置:run->Edit configurations
  • 添加一个PHP Web Appliation
  • 将右上角的小电话的图标设置为监听状态就可以启用XDEBUG调试程序了

浏览器扩展

php的xdebug需要监听请求中的特定参数才能启用xdebug调试,这里推荐安装一个浏览器扩展,该扩展在启用时可以保存此参数并附加到每个页面中以便调试

  • 火狐浏览器可以安装:The easiest xdebug扩展
  • chrome浏览器可以安装:XDebug Helper扩展

PhpStorm连接docker容器内的php XDebug进行断点调试相关推荐

  1. 解决:docker容器内可以访问web应用,端口映射到宿主机却无法访问,错误代码:curl: 56 Recv failure: 连接被对方重设

    解决:docker容器内可以访问web应用,端口映射到宿主机却无法访问,错误代码:curl: 56 Recv failure: 连接被对方重设 或者 curl: 52 Empty reply from ...

  2. 【Docker】docker容器内获取宿主机的信息和执行宿主机的脚本

    思路 我们可以通过在容器内远程连接宿主机,然后对宿主机进行操作. 使用 sshpass (我的是CentOS 7.9环境) 1.安装sshpass apt-get update //更新一下 apt- ...

  3. 解决Docker容器内访问宿主机MySQL数据库服务器的问题

    解决Docker容器内访问宿主机MySQL数据库服务器的问题 参考文章: (1)解决Docker容器内访问宿主机MySQL数据库服务器的问题 (2)https://www.cnblogs.com/ga ...

  4. Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法

    Navicat 远程连接docker容器中的mysql 报错1251 - Client does not support authentication protocol 解决办法 1).容器中登录my ...

  5. 基于事件驱动架构构建微服务第10部分:在docker容器内运行单元测试

    原文链接:https://logcorner.com/building-microservices-through-event-driven-architecture-part11-run-unit- ...

  6. 解决Docker容器内安装chrome浏览器无法启动bug

    前言 之前有写过一个基于Ubuntu20.04 的Docker容器的可视化Dockerfile,当时默认火狐浏览器,今天要测试一个项目就run了一个可视化容器,但是我需要用到chrome浏览器,于是乎 ...

  7. docker容器内漏洞_如何在2020年发现和修复Docker容器漏洞

    docker容器内漏洞 Containerization allows engineering teams to create a sandbox environment in which to ru ...

  8. ssh 连接_Docker实战——使用SSH连接docker容器

    简介 什么是Docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 L ...

  9. Docker容器内不能联网的6种解决方案

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Docker容器内不能联网的6种解决方案 注:下面的方法是在容器内能ping通公网IP的解决方案,如果连公网IP都ping不通,那主机可能也上不了网( ...

  10. DOCKER容器内中文显示乱码

    在docker容器内使用Bash通过 ls 列取中文列表内容时,中文会显示为乱码,简单一步就可以解决此烦恼. 在创建容器时加入环境变量: LANG=C.UTF-8 命令行方式: docker run ...

最新文章

  1. 树莓派3b+目标检测: tflite 运行 mobilenet ssd
  2. mysql回表_到底什么情况下mysql innodb会发生回表操作?
  3. 解决VS2013卡顿现象,很有用
  4. 小米折叠手机高清渲染图曝光:双外折叠形态美如画
  5. cs0246未能找到类型或命名空间名_实用小工具之整理标题及数据类型
  6. SAP License:SAP会计凭证抬头的字段状态控制
  7. HelpDesk工作流多级,多任务流程(包含源代码和InfoPath模板)
  8. 第七届蓝桥杯c语言a组答案,第七届蓝桥杯 C语言A组试题.pdf
  9. Java连接数据库驱动包下载
  10. 加密php大马,webshell加密-加密你的大马
  11. 转载 三极管饱和及深度饱和状态的理解和判断!!
  12. linux wine编译安装目录,wine32和wine64共存编译安装方法
  13. 微信小程序服务器向客户端发送通知消息,微信小程序消息推送
  14. 2020-01-04
  15. 深入详解python高级特性——函数柯里化(Currying)与反柯里化
  16. Android通过广播接收器BroadcastReceiver监听蓝牙连接变化
  17. 如何实现emoji文本字数计算?以及输入框限制指定字符数?
  18. MATLAB解线性方程组
  19. PS学习(一)-改变logo颜色
  20. 电脑连接linux系统怎么样,如今连Linux都弄不懂-当时我如果那么学习培训电脑操作系统就好啦...

热门文章

  1. 基于Web的MIS系统环境配置和相关含义(拷贝版)
  2. NYOJ4——ASCII码排序
  3. Flash 二进制传图片到后台Java服务器接收
  4. [转载]DB2数据库移植罕见结果周全理会(3)
  5. 有感于Oracle 9i的QueryHints
  6. 项目回顾-RecyclerView和CheckBox错乱问题
  7. JS打印对象的方法将Object转换为String的函数
  8. Revit二次开发示例:ModelessForm_ExternalEvent
  9. Java学习环境的搭建
  10. CSS3特殊图形制作