首页 > Web开发 > 详细

PhpStorm连接Docker容器配置xdebug断点调试

时间:2018-10-01 23:33:07      阅读:598      评论:0      收藏:0      [点我收藏+]

本教程主要演示xdebug在PhpStorm中配置方法。

一、环境说明

1.Mac笔记本(本教程演示过程使用的是Mac OS操作系统,和windows环境是有区别的,这一点需要特别注意);

2.在Mac笔记本上安装Docker,笔者安装的Docker版本信息如下:

B000000075547S:Downloads v_shiyanjun$ docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:21:31 2018
 OS/Arch:           darwin/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:29:02 2018
  OS/Arch:          linux/amd64
  Experimental:     true

 

3.Docker容器安装Centos,版本信息:

[root@37815a453e3e /]# uname -a
Linux 37815a453e3e 4.9.93-linuxkit-aufs #1 SMP Wed Jun 6 16:55:56 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@37815a453e3e /]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core) 

 

4.安装lnmp环境(nmp1.5.tar.gz),lnmp一键安装包下载地址:

https://lnmp.org/install.html

 

5.安装xdebug(xdebug-2.6.1.tgz),下载链接:

https://xdebug.org/files/xdebug-2.6.1.tgz

 

6.PhpStorm开发软件(PhpStorm 2018.2.3),下载链接:

https://download.jetbrains.com/webide/PhpStorm-2018.2.4.dmg

 

7.准备一个php项目,并导入到PhpStorm开发工具中,用户debug代码调试演示;

 

二、nginx的配置

[root@37815a453e3e vhost]# pwd
/usr/local/nginx/conf/vhost
[root@37815a453e3e vhost]# ls
xbs.com.conf
[root@37815a453e3e vhost]# cat xbs.com.conf 
server
    {
        listen 8888;
        server_name xbs.com n;
        index index.php;
        root  /home/work/xbs;

        include rewrite/none.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/work/logs/xbs.com.log;
    }
[root@37815a453e3e vhost]# 

 

三、xdebug在PhpStorm中的配置

1.安装好xdebug之后,在php.ini文件尾部添加如下内容,注意:xdebug.remote_host配置的是mac笔记本的IP地址,xdebug.idekey要和PhpStorm中配置的一致

[xdebug]
zend_extension=xdebug.so
xdebug.profiler_enable=on
xdebug.trace_output_dir="/usr/local/php/xdebug_trace"
xdebug.profiler_output_dir="/usr/local/php/xdebug_profiler"
xdebug.default_enable=0
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=192.168.0.104
xdebug.remote_port=9000
xdebug.remote_connect_back=0
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log=/usr/local/php/xdebug/remote.log

 

2.在PhpStorm中配置php debug,注意端口为9000,要和上面php.ini文件中的xdebug.remote_port一致:

技术分享图片

 

3.在PhpStorm中配置php server,注意host和端口要和lnmp中配置的一致,Debugger下拉框选择Xdebug,下面的File/Directory配置的是Mac笔记本磁盘上的php项目所在目录,而absolute path on the server配置的是Docker容器中的lnmp服务器上的php项目目录,这两个目录是可以在启动Docker容器的时候通过-v参数进行指定的。

技术分享图片 

 

4.PhpStorm中Docker的配置,主要是目录的映射配置,图中Virtual machine path配置的是Docker容器中php项目目录,而Local path配置的是Mac笔记本本地磁盘上php项目的目录:

技术分享图片

 

5.配置好Docker之后,在PhpStorm的最下方可以找到Docker工具面板,点击绿色的启动按钮就可以启动Docker服务来:

技术分享图片

 

Docker服务启动之后,可以管理Docker镜像和Docker容器,在指定的镜像上面点击右键可以创建容器,如下图所示,我基于sha256:f84360b124ec这个Docker镜像创建来一个名为yaf-xbs-container-tq的Docker容器:

技术分享图片

 

6.创建容器时会弹出如下对话框,可以配置Docker容器相关的信息,主要是docker容器和Mac笔记本的ip地址、项目端口以及项目目录的映射方面的配置:

技术分享图片

上图中的192.168.0.104:8888是我Mac笔记本的IP地址和项目端口,意思是,当我在笔记本上使用浏览器访问192.168.0.104:8888的时候,会访问到Docker容器8888端口。

 

7.点击上图右下角的run按钮,就可以启动Docker容器了,在右边的PortBindings选项卡可以编辑和添加宿主机和Docker容器之间的端口映射关系:

技术分享图片

 

在VolumeBingdings选项卡可以编辑宿主机和Docker容器之间项目目录映射关系:

技术分享图片

 

8.添加容器执行命令

启动Docker容器之后,在容器上点击右键选择exec,然后选择create即可创建容器执行命令,比如这里我添加了一个条重启lnmp的命令"lnmp restart":

技术分享图片

 

点击OK,再次在容器上点击右键就能看到刚添加的Docker容器执行命令"lnmp restart",点击该命令就可以在容器中重启lnmp了。

 

9.启动debug监听

最后一步,一定要点击PhpStorm右上角对小电话图标来启动PhpStorm对Xdebug对监听,否则debug不生效:

技术分享图片

 

10.在php项目代码中打断点,浏览器访问http://192.168.0.104:8888,即可触发PhpStorm对xdebug调试功能,自动进入debug模式。这里用到到php项目是yaf框架到最简单到demo。

技术分享图片

 

11.浏览器响应结果(这里返回到是一个json格式的数据)

技术分享图片

总结:由于笔者是第一次使用Mac系统,也是第一次接触php语言并搭建php开发环境,也是第一次接触Docker,所以整个过程还算比较曲折。经过反复查询资料,反复重试,才有来本篇教程。若有疏漏之处,请读者指正。

 

PhpStorm连接Docker容器配置xdebug断点调试

原文:https://www.cnblogs.com/jun1019/p/9735250.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!