说明

在开发中,断点调试是我们最快能找出Bug代码问题的所在,那么在docker中如何使用xdebug进行php项目的跟踪调试呢?

Step1 制作一个包含Xdebug扩展的容器

dockerfile如下

FROM php:5.6-fpm

MAINTAINER Godtoy

RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list \

&& apt-get update && apt-get install -y \

libfreetype6-dev \

libjpeg62-turbo-dev \

libmcrypt-dev \

libpng12-dev \

&& docker-php-ext-install -j$(nproc) iconv mcrypt pdo_mysql mysql mbstring opcache bcmath \

&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --enable-bcmath \

&& docker-php-ext-install -j$(nproc) gd \

&& pecl install redis-3.1.0 \

&& pecl install xdebug-2.5.0 \

&& docker-php-ext-enable redis xdebug \

构建的话,我们这里直接使用docker-compose.yml中进行构建

version: '3.0'

services:

php-fpm:

build: ./dockerfiles/php/

#image: zhaojunlike/php-fpm:5.6-latest

restart: always

environment:

TP_APP_DEBUG: 1

APP_DEBUG: 1

volumes:

#网站目录

- ./app:/app:rw

#配置文件

- ./dockerfiles/php/php-dev.ini:/usr/local/etc/php/php.ini:ro

- ./dockerfiles/php/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro

- /etc/localtime:/etc/localtime:ro

#挂载站点日志

- ./logs/php-fpm:/var/log/php-fpm:rw

php.ini文件配置信息

[PHP]

short_open_tag = On

display_errors = On

error_reporting = E_ALL

post_max_size = 120M

upload_max_filesize = 100M

[Date]

date.timezone = Asia/Shanghai

[XDebug]

xdebug.idekey = "PHPSTORM"

xdebug.remote_enable = 1

xdebug.remote_handler = "dbgp"

xdebug.remote_mode = "req"

xdebug.remote_connect_back = on

xdebug.remote_autostart = off

xdebug.remote_host = "192.168.197.1"

xdebug.remote_port = 9000

xdebug.remote_log = /var/log/php-fpm/x-debug-remote.log

remote_host是开发IDE工具的ip地址

php.ini我推荐创建2个版本,一个版本用于本地开发调试的环境配置文件,还有一个线上生产的文件,可以开启opache等扩展对平台进行加速

Step2 启动Lnmp环境

在docker-lnmp中,我们已经编排好了一个基本的nginx+php-fpm +mysql的环境实例,我们只需要克隆到根目录使用

docker-compose up -d

便会自动的去执行build然后生成镜像

最后会自动启动4个容器

Step3 配置PHPStorm IDE

配置路径:File | Settings | Languages & Frameworks | PHP | Debug | DBGp Proxy

在host文件中我将dev.me 已经host到了docker宿主机IP地址里面

所以www.dev.me也可以是docker宿主机的ip地址

192.168.197.128 admin.dev.me api.dev.me dev.me www.dev.me m.dev.me old.dev.me new.dev.me

配置启动

最后apply就行了,

启动的时候,请开启那个小电话,还有打好断点就行了。

这样就配置好了

Chrome 安装插件监听

开启小电话以后,如果访问www.dev.me会自动进入断点中的debug模式,这样我们的docker开发环境的断点调试就已经配置好了。 enjoy

coker php debug_docker中php xdebug调试开发相关推荐

  1. PHPStorm中使用Xdebug调试

    1.下载 Xdebug.dll 动态库扩展文件 访问http://xdebug.org/download下载,注意下载的版本需与你的PHP版本匹配,下载下来的文件我一般放到php的文件夹上: 2.安装 ...

  2. PHP学习笔记 - 在Eclipse中使用XDebug调试代码 | Using XDebug debug code in eclipse

    这是一篇转载的技术篇,放在自己博客上方便以后随时参考 原文网址是: http://aofengblog.blog.163.com/blog/static/631702120117283414706/ ...

  3. php eclipse 断点调试,在Eclipse中使用XDebug调试代码 | Using XDebug debug code in eclipse

    调试代码是在开发环境下用于跟踪和定位问题根源的一种手段,虽然大部分问题在单元测试后可以有效避免.所谓金无赤金,代码也一样会存在BUG. EclipsePHP提有非常强大的PHP编辑功能, 同样也提供了 ...

  4. 使用zend studio配置Xdebug调试PHP教程

    之前我介绍了PHP开发工具Zend Studio7入门使用教程,其实使用zend studio调试PHP非常方便,zend studio默认支持调试工具zend debugger也允许使用第三方调试工 ...

  5. PHP - Xdebug调试 - 学习/实践

    1.应用场景 主要用于学习和使用xdebug进行项目的调试,包括本地项目或者远程项目.基于vscode或者phpstorm编辑器或IDE,目的就是为了解决开发中的问题,快速调试找到问题,解决问题. 2 ...

  6. Chrome中的JS调试

    Chrome中的JS调试 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术: VS ...

  7. dbgpProxy php 远程xdebug调试

    文章目录 远程xdebug调试 dbgpProxy, php-fpm, 编辑器三者通信示意图 dbgpProxy下载: dbgpProxy-启动 phpStorm注册dbgpProxy 设置bdgpP ...

  8. eclipse php设置xdebug,eclipse 中配置php的 XDebug调试

    1. 打开 eclipse for php IDE,window->preference->PHP->Debug 2. 配置phpserver 3. 我的已经增加好了,默认的应该有l ...

  9. eclipse 中配置php的 XDebug调试

    1. 打开 eclipse for php IDE,window->preference->PHP->Debug 2. 配置phpserver 3. 我的已经增加好了,默认的应该有l ...

最新文章

  1. 刘铁岩:AI打通关键环节,加快物流行业数字化转型
  2. 4种方法让SpringMVC接收多个对象(转:http://blog.csdn.net/lutinghuan/article/details/46820023)
  3. python学习网址
  4. Python中类方法、类实例方法、静态方法,私有属性和私有方法有何区别?
  5. 小朋友排队|2014年蓝桥杯B组题解析第十题-fishers
  6. 500多页的机器学习入门笔记,下载超5万次,都讲了些什么?
  7. 拼多多发布“3.8女神节”数据:超过70%女性自购鲜花
  8. Flash中图片的逐步加载
  9. 利用python制作词云图
  10. cadence——MOS晶体管I-V特性曲线仿真
  11. video标签autoplay属性不生效
  12. ios 获取相机胶卷_电影胶片相机的工作原理
  13. 【点云系列】综述: Deep Learning for 3D Point Clouds: A Survey
  14. 帮助海外游客规划从成田机场开始日本旅行的新网站上线
  15. 华为加班夜宵报销要主管审批?任正非怒斥:多此一举
  16. 计算机7层网络以及每层协议
  17. 华为p40手机自带计算机,如何让华为p40与电脑进行连接
  18. Transaction Processing on Modern Hardware 读书笔记
  19. 4GDTU在配电自动化的应用
  20. Spark广播变量Broadcast

热门文章

  1. MYSQL中RAND子句的使用_mysql优化--rand()优化
  2. xe ftp.config.php,用PHP实现一个高效安全的ftp服务器(一)
  3. 电脑蓝屏终止代码irql_电脑蓝屏代码浅析
  4. java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...
  5. nginx源代码执行过程(一)
  6. python mysql安装
  7. oracle最大值填充,Oracle sequence值到了最大值的处理
  8. java月份列表_java – 如何获取两个日期之间的月份和年份列表
  9. 循环数组函数c语言,C语言练习题2(分支结构循环结构数组函数2009-2012二级真题)..doc...
  10. 字符串对象转数组对象_js对象转数组的方法 js怎么将数组对象转变成字符串