作为一个资深的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. zip方式安装MySQL提示找不到 MSVCP120.dll的解决方法

    电脑重装系统后,用zip的方式安装MySQL,在执行mysqld --initialize的时候提示 由于找不到 MSVCP120.dll,无法继续执行代码.重新安装程序可能会解决此问题. 解决的方法 ...

  2. [STM32F10x] 利用定时器测量频率

    硬件:STM32F103C8T6 平台:ARM-MDk V5.11 原理 利用STM32F10x的定时器的捕获(Capture)单元测量输入信号的频率. 基本原理是通过两次捕获达到的计数器的差值,来计 ...

  3. 云计算实验二 Docker实验-mysql、tomcat、sqlserver、redis、oracle、mongo安装

    mysql安装 下载镜像 docker pull mysql 查看镜像 docker images|grep mysql 创建启动容器 docker run --name mysqlserver -v ...

  4. 【问题排查过程】vm-backup的snapshots导致磁盘满

    使用中发现,vm-storage节点仅仅过了6天,就占用了800GB的硬盘空间.很不正常.下面是排查过程: 1.查看磁盘占用情况: 先登录容器,执行: df -h /dev/vdb 1012.8G 8 ...

  5. 【记录一个问题】golangci-lint.exe中,盘符大写就会执行出错

    golangci-lint.exe版本为1.31.0 执行:golangci-lint.exe run d:\source\github.com\ahfuzhang\go_xxx_server\src ...

  6. visual studio进行机器学习与python编写

    visual studio里的python安装之后自带一个虚拟环境 1.anaconda有些包版本无法到最新. 2.包管理器在安装卸载,强制停止后,包管理器会出问题,一直卸不掉那个包. 在卸载pyth ...

  7. 记一次org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only异常

    @Transactional(rollbackFor = Exception.class) @Overridepublic DubboResult<Boolean> productAddO ...

  8. python 爬虫爬取历年双色球开奖信息

    目前写的这些爬虫都是些静态网页,对于一些高级网页(像经过JS渲染过的页面),目前技术并不能解决,自己也是在慢慢学习过程中,如有错误,欢迎指正: 对面前端知识本人并不懂,过程中如果涉及到前端知识,也是百 ...

  9. VC++线程同步之临界区(CriticalSection)

    1.相关文件和接口 #include <windows.h> CRITICAL_SECTION cs;//定义临界区对象 InitializeCriticalSection(&cs ...

  10. 火爆的文字游戏你玩了吗?「GitHub 热点速览 v.22.06」

    不知道你有没有被 Wordle 这款游戏刷屏,在本期热点速览的特推部分选了一个 React 编写的开源版本同你分享,而本次公众号摘要也是一个提示, 只不过这个只能盲猜了.别小瞧 Wordle 这个游戏 ...