zoukankan      html  css  js  c++  java
  • docker中php xdebug调试开发

    docker-compose环境来自:https://github.com/zhaojunlik...
    原文:http://blog.oeynet.com/post/9...

    说明

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

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

    dockerfile如下

    FROM php:5.6-fpm
    MAINTAINER Godtoy <zhaojunlike@gmail.com>
    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然后生成镜像

    screenshots.png

    最后会自动启动4个容器

    screenshots.png

    Step3 配置PHPStorm IDE

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

    screenshots.png

    在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

    配置启动

    screenshots.png

    screenshots.png

    screenshots.png

    screenshots.png

    最后apply就行了,
    screenshots.png

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

    这样就配置好了
    screenshots.png

    Chrome 安装插件监听

    地址
    https://chrome.google.com/web...

    screenshots.png

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

  • 相关阅读:
    git取消文件跟踪
    servlet
    查杀端口进程
    初始化git仓库,并push到远端
    tomcat
    bootstrap
    idea中web工程错误
    i++和++i
    js算法
    编程工具
  • 原文地址:https://www.cnblogs.com/gongxianjin/p/10845308.html
Copyright © 2011-2022 走看看