使用phpstorm对docker中的脚本进行debug的方法

在对运行在容器中的环境进行debug,可以通过网页和脚本俩种方式进行debug,

这里介绍下对容器中的脚本进行debug。

xdebug的原理了解。

xdebug是php的扩展,会搜集php执行的信息,然后发送给指令的远程ip+port。这里通常我们使用的开发工具会监听某个port。接受到php执行信息。再debug界面进行显示。

首先,容器中的php环境需要有安装好xdebug扩展并且配置好,这里对应的image名称为php_sk。

这是运行的容器,/etc/docker/daemon.josn为使用api访问docker的配置(目的是使phpstorm能访问到容器)
,这里由于是测试环境,没做访问控制。

虚拟机安装在VirtualBox里,网络为NAT模式,通过端口转发和内部进行通信

通过对端口2375的转发,浏览器可以访问到api

设置debug端口,默认9000

配置phpstorm里的docker访问参数

这时候可以看到虚拟机中的容器,可以进行启动,暂停,和访问

选择php版本,和命令行访问模式,选择docker,找到php对应的image

配置对应的目录,设置的name,在后面执行脚本会使用到

配置debug,由于是命令行执行脚本,选择php script

连接至虚拟机,执行脚本(/home/www/sk/html/index.php),ip替换成phpstorm所在主机的ip

代码如下:

docker run --rm -v /home/www:/home/www --env "XDEBUG_CONFIG=remote_host=10.249.22.204 remote_port=9010" --env "PHP_IDE_CONFIG=serverName=new" php_sk php /home/www/sk/html/index.php

可以看到,已经可以对脚本进行debug了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Phpstorm+Xdebug断点调试PHP的方法

    为什么使用断点调试 大家可能会觉得使用var_dump和echo也能调试啊,为什么还要安装Xdebug断点调试呢? 确实是这样.但是var_dump和echo写的代码后面还要删除,而且明确是知道在哪打的,如果发现没有运行到打点的地方,还要修改代码再运行一次.而断点调试,可以在调试过程中动态打断点,逐行查看当前各个变量的值,甚至临时修改变量的值,更方便.建议大家使用Xdebug断点调试. 安装Xdebug pecl install xdebug 如果是php7以下版本,需要加上版本号: pecl

  • 使用PHPStorm+XDebug搭建单步调试环境

    PHP是一个解释执行的语言,一般来说,进行调试的时候,只要通过使用 var_dump 或者 var_export 两个函数,就可以得到PHP中变量的值,达到调试的地步,但是对于大型项目,或者想研究一下别人的代码时,使用单步调试会变得简单的多.就拿目前最流行的 PHP Laravel 框架为例子,使用 PHPStorm 搭建单步调试环境. PHPStorm安装和基本配置 PHPStorm下载安装 PHPStorm除了体积有些大外,算是PHP IDE中非常强大便捷的开发环境.官网下载地址:https

  • 使用phpstorm和xdebug实现远程调试的方法

    vs的断点调试功能很强大有木有,能查看所有变量有木有.php调试很麻烦有木有,echo,var_dump写得你想吐了有木有.想体验一下ide调试的快感吗?那就来使用xdebug吧. 1.原理:xdebug是一款php调试插件,支持远程调试,就是在php文件运行的时候,能通过tcp协议,来发送调试信息到远程端口,ide在收到调试信息的时候,可以向xdebug发送单步运行,中止运行,运行等命令.这样就实现了vs那样强大的调试功能. 2.需要的东东:一款支持xdebug远程调试的ide,这里使用php

  • 解析phpstorm + xdebug 远程断点调试

    XDEBUG配置:1.安装 xdebug 略了.网上有很多资料. 重点写php.ini的配置 [XDebug] 复制代码 代码如下: zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"xdebug.default_enable = Onxdebug.collect_params = Onxdebug.remote_connect_back = On           //如果开启此,将忽略下面的 xdebug.remote_ho

  • phpstorm配置Xdebug进行调试PHP教程

    运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdebug版本一定要相对应 1. PHP安装xdebug扩展 php.ini的配置,下面的配置仅供参考,路径要换成自己的! [xdebug] zend_extension="D:\wamp\php-5.6.2-x64\ext\php_xdebug-2.2.5-5.6-vc11-x86_64.dll&quo

  • PHPStorm+XDebug进行调试图文教程

    笔者的开发环境如下:Windows8.1+Apache+PhpStorm+XDebug+Firefox(XDebug helper 1.4.3插件). 一.XDebug安装配置 (1)下载XDebug下载地址:http://www.xdebug.org/必须下载跟机器上安装的php匹配的版本才行.具体下载方法如下:将phpinfo网页的源代码拷贝到http://www.xdebug.org/find-binary.php,然后按照指导安装即可.如下图所示: (2)安装XDebug按照上图下载"p

  • 图文详解phpstorm配置Xdebug进行调试PHP教程

    phpstorm配置Xdebug进行调试PHP教程分享给大家,具体内容如下 运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdebug版本一定要相对应 1. PHP安装xdebug扩展 php.ini的配置,下面的配置仅供参考,路径要换成自己的! [xdebug] zend_extension="D:\wamp\php-5.6.2-x64\ext\ph

  • 使用phpstorm对docker中的脚本进行debug的方法

    在对运行在容器中的环境进行debug,可以通过网页和脚本俩种方式进行debug, 这里介绍下对容器中的脚本进行debug. xdebug的原理了解. xdebug是php的扩展,会搜集php执行的信息,然后发送给指令的远程ip+port.这里通常我们使用的开发工具会监听某个port.接受到php执行信息.再debug界面进行显示. 首先,容器中的php环境需要有安装好xdebug扩展并且配置好,这里对应的image名称为php_sk. 这是运行的容器,/etc/docker/daemon.jos

  • 在docker中部署并启动redis的方法

    docker部署redis 首先在linux中安装上Docker,然后启动Docker服务 Centos7中 启动Docker systemctl start docker //启动docker systemctl stop docker //停止docker systemctl restart docker //重启docker 查找想要拉取的镜像 1. 直接在Linux中使用docker search 镜像名称 搜索镜像        docker search 镜像名称 2. 在Docke

  • 在Docker中跑Hadoop与镜像制作方法

    重复造轮子,这里使用重新打包生成一个基于Docker的Hadoop镜像:   Hadoop集群依赖的软件分别为:jdk.ssh等,所以只要这两项还有Hadoop相关打包进镜像中去即可: 配置文件准备 1.Hadoop相关配置文件:core-site.xml.hdfs-site.xml.mapred-site.xml.yarn-site.xml.slaves.hadoop-env.sh 2.ssh配置文件:ssh_config 3.Hadoop集群启动文件:start-hadoop.sh 制作镜像

  • Docker 中快速安装tensorflow环境的方法步骤

    Docker 中快速安装tensorflow环境,并使用TensorFlow. 一.下载TensorFlow镜像 docker pull tensorflow/tensorflow 二. 创建TensorFlow容器 docker run --name corwien-tensortflow -it -p 8888:8888 -v /Users/kaiyiwang/Code/ai/notebooks:/notebooks/data tensorflow/tensorflow 命令说明 docke

  • 为docker中的nginx配置https的方法步骤

    没有 https 加持的网站会逐渐地被浏览器标记为不安全的,所以为网站添加 https 已经变得刻不容缓.对于商业网站来说,花钱购买 SSL/TLS 证书并不是什么问题.但对于个人用户来说,如果能有免费的 SSL/TLS 证书可用将会是非常幸福的事情!Let's Encrypt 就是一个提供免费 SSL/TLS 证书的网站,由于其证书期限只有三个月,所以需要我们用自动化的方式去更新证书.本文将介绍如何为通过 docker 运行的 nginx 中的站点添加 https 支持,并自动完成证书的更新.

  • 在Docker中部署Confluence和jira-software的方法步骤

    version: centos==7.2 jdk==1.8 confluence==6.15.4 jira-software==8.2.1 docker==18.09 安装前提示: 1. 需要准备2个数据库,因为confluence和jira-software的mysql配置要求不一样     2. confluence需要配置jdk,jira-software自带jdk 选择使用docker部署的原因: 1. confluence和jira-software环境需求不同,需要分开配置.    

  • 用vbs在 HTA 内对脚本进行编码的方法

    问: 您好,脚本专家!如何在 HTA 内对脚本进行编码? -- LL 答: 您好,LL.您知道,刚看到这个问题时,我们就在想:"这有什么大不了的?难道不能像在 HTML 文件中那样在 HTML 应用程序 (HTA) 中对脚本进行编码吗?"令我们大为吃惊的是,好像不能在 HTA 中对脚本进行编码:每次试图这样做时,都会返回像下面这样的错误消息: Scripting encoder object ("Scripting.Encoder") failed on C:\Sc

  • 使用Docker运行Microsoft SQL Server 2017的方法

    最近每天都在空闲时间努力编写Apworks框架的案例代码WeText.在文本发布和处理微服务中,我打算使用微软的SQL Server for Linux来做演示,于是也就在自己的docker-compose中加入了MS SQL Server的服务.其实在Docker中运行SQL Server是非常容易的,今天大概做个介绍吧. 启动Microsoft SQL Server 2017容器 下面是我目前WeText案例中用于搭建基础结构服务的docker-compose.yml文件(该文件将来还会变动

  • docker中mysql初始化及启动失败问题解决方案

    最近做项目,遇到这样问题,docker 中的mysql 不能启动,经过上网查资料,终于解决了这个问题,这里记录下,也许还能帮助到大家, 在docker中有一个mysql服务,其数据文件是挂在在主机外面的文件,在docker中的root有访问该数据文件的权限,但是docker中mysql访问数据文件的时候提示权限不足,于是只有以root用户来启动mysql了. 数据初始化: mysql_install_db --user=root --explicit_defaults_for_timestamp

  • 详解ASP.NET Core 网站在Docker中运行

    Docker作为新一代的虚拟化方式,未来肯定会得到广泛的应用,传统虚拟机的部署方式要保证开发环境.测试环境.UAT环境.生产环境的依赖一致性,需要大量的运维人力,使用Docker我们可以实现一次部署,到处运行. 本文介绍如何把ASP.NET Core网站部署在Docker中运行. 软件环境清单 CentOS 7.3.1611 Docker 1.12.6 .NET Core 1.1 安装Docker $ #安装Docker $ yum install docker $ #启动docker服务 $

随机推荐