作为一个资深的php开发者,我在之前的一篇文章里面也讲了如何搭建lnmp的docker镜像,这里不再赘述。在基于镜像运行容器中我也安装了xdebug,于是考虑用phpstorm来配置xdebug。
使用xdebug的好处很多:1.可以让开发者进行断点调试。2.并可以收集和显示运行阶段的变量和值。3.减少不必要的代码调试。这样php开发者就不用每次手动写代码进行断点调试,不用"var_dump"、"echo" 、"print_r"之类的输出语句打印变量。而且xdebug还提供了可以step in(步进)到调用函数内部,这样更方便进行debug。
首先给一个phpstorm和xdebug互相调用的图:
由此可见,需要配置好docker中的xdebug的配置,还有就是IDE中的xdebug相关配置。
1.配置docker中的xdebug。
先进入docker容器,然后使用php --ini命令查找到xdebug的配置文件地址。
用vim打开20-xdebug.conf,增加如下所示的配置:
zend_extension=xdebug.so
[XDebug]
xdebug.start_with_request = yes
;xdebug.remote_handler = "dbgp"
xdebug.remote_connect_back=1
xdebug.remote_enable=1
xdebug.client_host=192.168.3.6
xdebug.remote_port=9003
xdebug.remote_log = "/var/log/dnmp/php.xdebug.log"
xdebug.idekey=PHPSTORM
xdebug.mode=debug
其中xdebug.client_host是xdebug3的新配置,可以填写宿主机(就是你真实电脑)的ip,这是关键,千万不要填写什么172开头的,那是docker同网段的ip,不是本机真正的ip。如果你是的mac,可以用ifconfig查看你的en0的ip,其他操作系统的命令类似。
然后remote_port就是监听的端口号,建议用900x端口号,这样不会和常见已用的端口号重复。完成上面步骤,记得重启容器让配置生效
2.phpstorm的配置很简单,先选择ide的preferences,然后选择debug选项面板,如图所示。
 
然后再配置Server,如下图所示。
最后配置php web page,用上一步配置好的server即可,如下图所示。
然后就可以开始快乐地使用xdebug了。

如何结合phpstorm配置在docker中的xdebug的更多相关文章

  1. PhpStorm连接Docker容器配置xdebug断点调试

    本教程主要演示xdebug在PhpStorm中配置方法. 一.环境说明 1.Mac笔记本(本教程演示过程使用的是Mac OS操作系统,和windows环境是有区别的,这一点需要特别注意): 2.在Ma ...

  2. PhpStorm 配置在浏览器中打开文件

    这东东中文资料太少- -鼓捣了好久才有结果 点击File-Settings-Deployment .点+按钮增加服务器 Mapping 设置工程路径等 点击 Edit Confi 这东东中文资料太少- ...

  3. Mac+Docker环境下xdebug的配置

    由于容器化的需要,前几天我本地也换成了docker环境.就研究了一下docker环境下phpstorm和xdebug的配置. http://www.mmfei.com/?p=453 这个博客给出了一个 ...

  4. ref:phpstorm配置远程调试(xdebug)(docker中)

    ref:https://www.cnblogs.com/yjken/p/6555438.html readme:本文设置远程调试ubuntu中的php代码. 在docker中也可以,经过测试phpin ...

  5. Mac: phpstorm中使用xdebug调试php

    Mac: phpstorm中使用xdebug调试php###phpstorm和webserver都在同一台机器上这种情况1.安装xdebug使用pecl安装即可2.php.ini配置[xdebug]z ...

  6. mac+php+xdebug+phpstorm在苹果下配置xdebug一波三折

    1.下载xdebug文件 http://xdebug.org/wizard.php 将phpinfo()的源代码复制到文本框中,xdebug会提示如何配置和下载哪个版本的xdebug. 全部下载地址: ...

  7. 滚动 docker 中的 nginx 日志

    Nginx 自己没有处理日志的滚动问题,它把这个球踢给了使用者.一般情况下,你可以使用 logrotate 工具来完成这个任务,或者如果你愿意,你可以写各式各样的脚本完成同样的任务.本文笔者介绍如何滚 ...

  8. 在Docker中从头部署自己的Spark集群

    由于自己的电脑配置普普通通,在VM虚拟机中搭建的集群规模也就是6个节点左右,再多就会卡的不行 碰巧接触了Docker这种轻量级的容器虚拟化技术,理论上在普通PC机上搭建的集群规模可以达到很高(具体能有 ...

  9. nopCommerce 3.9 大波浪系列 之 使用部署在Docker中的Redis缓存主从服务

    一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...

随机推荐

  1. MCU软件最佳实践——使用printf打印数据

    在mcu上开发应用时,使用串口打印调试信息是最常用的调试手段之一.printf是c标准库提供的函数,可以方便输出格式化的信息.但针对不同的mcu芯片,printf函数要能正常工作,需要做一些移植和适配 ...

  2. Android官方文档翻译 八 2.1Setting Up the Action Bar

    Setting Up the Action Bar 建立Action Bar This lesson teaches you to 这节课教给你 Support Android 3.0 and Abo ...

  3. HTTP API认证授权方案

    目录 一.需求背景 二.常用的API认证技术 2.1 App Secret Key + HMAC 2.2 OAuth 2.0 2.2.1 Authorization Code Flow 2.2.2 C ...

  4. 【笔记】对golang的大量小对象的管理真的是无语了……

    业务中有这样一个struct: type bizData struct{ A uint64 B uint64 C int32 D uint32 } 虽然没有实测,但我猜测这样的对齐方式,这个struc ...

  5. JDK原子操作类

    在Atomic包里一共提供了13个类,属于4种类型的原子更新方式,分别是原子更新基本类型.原子更新数组.原子更新引用和原子更新属性(字段).Atomic包里的类基本都是使用Unsafe实现的包装类. ...

  6. WebSphere--WAS概念和原理解析

    WebSphere--WAS概念和原理解析--tigergao收录于2021/04/25

  7. linux用户密码过期导致命令执行失败

    背景介绍: 使用zabbix调用系统命令,检查时间同步,发现一直在报错,root 用户执行无异常,问题还是出现zabbix用户上面. [zabbix@test-10-12 ~]$ sudo ntpda ...

  8. RSS生成工具/服务推荐

    时至2022,关于碎片化阅读.信息焦虑的讨论仍在继续且似乎并没有形成广泛共识的解决办法.而研究生期间主要研究方向就是推荐系统且未来也大概率从事相关岗位的我,对以算法为中心的信息获取方式可以说是又爱又恨 ...

  9. 右键没有word?excel?ppt?注解表该改改啦

    ✿[office 2019]office2010版本以上的都可以(例如:office 2010.office 2016.office 2019) 一.快速方法解决右键没有word: 在电脑桌面右键一个 ...

  10. JavaScripts之变量作用域提升问题(var、let、const)

    变量提升(Hoisting) var: 使用var在函数或全局内任何地方声明变量相当于在其内部最顶上声明它,这种行为称为Hoisting(提升) 注意:变量赋值的位置不会改变 function fn( ...