作为一个资深的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. MINItest软件架构总结

    MINItest软件架构总结 ----helloWen MINItest软件架构总结1. Problem Description2. Analysis3. Solution3.1. 通过读取设备信息来 ...

  2. 读 Linux 像读小说「GitHub 热点速览 v.22.03」

    本周特推选取了一个画风有点意思的 Linux 代码带读项目 flash-linux0.11-talk,希望有趣的文风能带你读完 Linux 代码.当然画风可以增加阅读体验,彩色标记也是一种学习方法-- ...

  3. 刚进公司,不懂GIt工作流的我瑟瑟发抖

    前言 不懂git工作流,被辞退了! 之前在看到这句话的时候,我刚实习入职不久,瑟瑟发抖.好巧不巧,今天又看到了类似的文章讲git重要性的. 眼下,学校导师安排给我的课题组了一个新的工程项目,使用git ...

  4. 【分享数据】vm-insert的压缩比达到29倍

    vm-insert采用remote-write的http协议来接收metric数据,然后按照一定算法转发到vm-storage群集. vm-insert到vm-storage这里是用了自己的二进制协议 ...

  5. 「Python实用秘技04」为pdf文件批量添加文字水印

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第4期 ...

  6. Servlet Listener(监听器)

    监听器 Listener 是一个实现特定接口的 Java 程序,这个程序专门用于监听另一个 Java 对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即自动执行.监听器的相关概 ...

  7. Autofac实现拦截器和切面编程

    Autofac.Annotation框架是我用.netcore写的一个注解式DI框架,基于Autofac参考 Spring注解方式所有容器的注册和装配,切面,拦截器等都是依赖标签来完成. 开源地址:h ...

  8. golang中的异常处理

    1. defer是go提供的一种资源处理的方式.defer的用法遵循3个原则在defer表达式被运算的同时,defer函数的参数也会被运算.如下defer的表达式println运算的同时,其入参i也会 ...

  9. 集合框架-TreeSet-Comparator比较器

    1 package cn.itcast.p5.treeset.demo; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 ...

  10. 学习JAVAWEB第十二天

    ## Servlet: 1. 概念 2. 步骤 3. 执行原理 4. 生命周期 5. Servlet3.0 注解配置 6. Servlet的体系结构 Servlet -- 接口 | GenericSe ...