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然后生成镜像
最后会自动启动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 安装插件监听
地址
https://chrome.google.com/web...
开启小电话以后,如果访问www.dev.me会自动进入断点中的debug模式,这样我们的docker开发环境的断点调试就已经配置好了。 enjoy
docker中php xdebug调试开发的更多相关文章
- 如何结合phpstorm配置在docker中的xdebug
作为一个资深的php开发者,我在之前的一篇文章里面也讲了如何搭建lnmp的docker镜像,这里不再赘述.在基于镜像运行容器中我也安装了xdebug,于是考虑用phpstorm来配置xdebug. 使 ...
- Mac: phpstorm中使用xdebug调试php
Mac: phpstorm中使用xdebug调试php###phpstorm和webserver都在同一台机器上这种情况1.安装xdebug使用pecl安装即可2.php.ini配置[xdebug]z ...
- Visual Studio Code IDE + Docker实现PHP Xdebug调试
一.Docker中安装配置Xdebug 通过phpinfo()输出当前安装的PHP版本信息,将信息拷贝到https://xdebug.org/wizard.php相应输入框中,系统会自动检测并推荐合适 ...
- PhpStorm中配置xdebug调试环境
1. 安装xdebug 第一步: 得到本地PHP配置信息 在终端中运行: php -i > outputphp.txt 然后将得到的txt文件中的信息拷贝并复制到http://xdebug.or ...
- ubuntn下 nginx+phpstorm 中配置xdebug调试
xdebug安装和配置说明,主要用于个人学习记录. 一.echo phpinfo(); 搜素xdebug,若未搜素到,则标识未安装或安装失败. 二.拷贝步骤1中输出的所有结果.访问http://xde ...
- Docker中使用createdump调试coreclr
应用上线后可能出现一些问题,通过源码排查,日志分析都不能确定具体原因的情况下,可以使用dump转存文件分析,netcore对于linux系统dump提供了createdump工具,配合lldb sos ...
- 工具系列 | PHPSTROM 连接Docker容器 && 配置XDEBUG调试
Docker 客户端配置 PHPSTROM 配置 选择连接 容器日志 配置Xdebug 开启Debug模式 打断点 浏览器访问该项目地址:http://wiot.frp.tinywan.top/
- 使用zend studio配置Xdebug调试PHP教程
这里看过上面的文章后写一下自己的想法. 最近安装了zend studio 10.5,下载了破解文件.开始是下载了10.0的版本,但是注册码不正确.所以只能安装最新的10.5了. 接下来进行PHP代码调 ...
- Mac+Docker环境下xdebug的配置
由于容器化的需要,前几天我本地也换成了docker环境.就研究了一下docker环境下phpstorm和xdebug的配置. http://www.mmfei.com/?p=453 这个博客给出了一个 ...
- ref:phpstorm配置远程调试(xdebug)(docker中)
ref:https://www.cnblogs.com/yjken/p/6555438.html readme:本文设置远程调试ubuntu中的php代码. 在docker中也可以,经过测试phpin ...
随机推荐
- 免费内网穿透服务Localtunnel
Localtunnel 将为您分配一个唯一的可公开访问的 url,它将所有请求代理到您本地运行的网络服务器. 快速开始 全局安装 Localtunnel(需要 NodeJS)以使其在任何地方都可以访问 ...
- OSI模型 TCP/IP协议
常见术语 网络相关的术语 1.拓扑:物理拓扑-----体现了设备之间的连接关系 逻辑拓扑----设备之间的通信关系 2.数据载荷:传递的实际信息 3.报文(PDU--协议数据单元) 4.数据头部的作用 ...
- 源码(chan,map,GMP,mutex,context)
目录 1.chan原理 1.1 chan底层数据结构 1.2 创建channel原理 1.3 写入channel原理 1.4 读channel原理 1.5 关闭channel原理 1.6 总结 2.m ...
- 百度松果菁英班OJ【连载】
第十六周 2 的 n 次幂 高精度乘法 #include<bits/stdc++.h> using namespace std; vector<int> mul(vector& ...
- Job And Schedule (V8R6C3)
KingbaseES 数据库提供了 kdb_schedule 扩展,使得用户能通过类似oracle job 的方式进行job调用.kdb_schedule 提供了三个Schema :dbms_job ...
- KingbaseES R6 集群“双主”故障解决案例
实际工作中,可能会碰到集群脑裂的情况,在脑裂时,会出现双 primary情况.这时,需要用户介入,人工判断哪个节点的数据最新,减少数据丢失. 一.测试环境信息 操作系统: [kingbase@node ...
- KingbaseFlySync 无主键过滤器custompkey配置
无主键过滤器custompkey配置 1.执行如下命令:repkeyclean -dbtype kingbase8 -host 192.168.11.15 -port 54321 -user sy ...
- Java的线程状态
在我们平时写code的时候,经常会使用到多线程.其中线程所处的状态就是我们需要进程思考的问题. 线程有哪些状态 NEW: 一个线程刚被创建,但是没有被使用就是处于这个状态 RUNNABLE: 一个线程 ...
- NLP新手入门指南|北大-TANGENT
开源的学习资源:<NLP 新手入门指南>,项目作者为北京大学 TANGENT 实验室成员. 该指南主要提供了 NLP 学习入门引导.常见任务的开发实现.各大技术教程与文献的相关推荐等内容, ...
- K8s deployments的故障排查可视化指南已更新(2021 中文版)
转载自:https://mp.weixin.qq.com/s/07S930e6vsN2iToo0gP0zg 英文版 高清图地址:https://learnk8s.io/a/a-visual-guide ...