PhpStorm鏈接Docker容器配置xdebug斷點調試

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

1、環境說明css

1.Mac筆記本(本教程演示過程使用的是Mac OS操做系統,和windows環境是有區別的,這一點須要特別注意);html

2.在Mac筆記本上安裝Docker,筆者安裝的Docker版本信息以下:linux

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,版本信息:nginx

[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一鍵安裝包下載地址:web

https://lnmp.org/install.html

 

5.安裝xdebug(xdebug-2.6.1.tgz),下載連接:docker

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

 

6.PhpStorm開發軟件(PhpStorm 2018.2.3),下載連接:json

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

 

7.準備一個php項目,並導入到PhpStorm開發工具中,用戶debug代碼調試演示;windows

 

2、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]# 

 

3、xdebug在PhpStorm中的配置

1.[xdebug重點]安裝好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

 

查看phpinfo檢查xdebug擴展安裝是否成功:

 

 

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

 

 

 

3.[xdebug重點]在PhpStorm中配置php server,注意host和端口要和lnmp中配置的一致[本地調試通常配置成localhost便可],Debugger下拉框選擇Xdebug,下面的File/Directory配置的是Mac筆記本磁盤上的php項目所在目錄,而absolute path on the server配置的是Docker容器中的lnmp服務器上的php項目目錄,這兩個目錄是能夠在啓動Docker容器的時候經過-v參數進行指定的。

 

 IDE key輸入"PHPSTORM",這個值要和下面步驟中瀏覽器debug插件配置的IDE key保持一致:

 

4.[xdebug重點]google瀏覽器安裝xdebug插件

 

安裝成功以後瀏覽器右上角會出現debug按鈕,在安裝上右鍵選擇"選項",IDE key選擇"PhpStrom",後面輸入"PHPSTORM"點擊save按鈕便可:

 

啓動debug,若是變成綠色說明啓動成功:

 

5.PhpStorm中Docker的配置,主要是目錄的映射配置,圖中Virtual machine path配置的是Docker容器中php項目目錄,而Local path配置的是Mac筆記本本地磁盤上php項目的目錄:

 

6.配置好Docker以後,在PhpStorm的最下方能夠找到Docker工具面板,點擊綠色的啓動按鈕就能夠啓動Docker服務來:

 

Docker服務啓動以後,能夠管理Docker鏡像和Docker容器,在指定的鏡像上面點擊右鍵能夠建立容器,以下圖所示,我基於sha256:f84360b124ec這個Docker鏡像建立來一個名爲yaf-xbs-container-tq的Docker容器:

 

7.建立容器時會彈出以下對話框,能夠配置Docker容器相關的信息,主要是docker容器和Mac筆記本的ip地址、項目端口以及項目目錄的映射方面的配置:

上圖中的192.168.0.104:8888是我Mac筆記本的IP地址和項目端口,意思是,當我在筆記本上使用瀏覽器訪問192.168.0.104:8888的時候,會訪問到Docker容器8888端口。

 

8.點擊上圖右下角的run按鈕,就能夠啓動Docker容器了,在右邊的PortBindings選項卡能夠編輯和添加宿主機和Docker容器之間的端口映射關係:

 

在VolumeBingdings選項卡能夠編輯宿主機和Docker容器之間項目目錄映射關係:

 

9.添加容器執行命令

啓動Docker容器以後,在容器上點擊右鍵選擇exec,而後選擇create便可建立容器執行命令,好比這裏我添加了一個條重啓lnmp的命令"lnmp restart":

 

點擊OK,再次在容器上點擊右鍵就能看到剛添加的Docker容器執行命令"lnmp restart",點擊該命令就能夠在容器中重啓lnmp了。

 

10.[xdebug重點]啓動debug監聽

最後一步,必定要點擊PhpStorm右上角對小電話圖標來啓動PhpStorm對Xdebug對監聽,不然debug不生效:

 

11.在php項目代碼中打斷點,瀏覽器訪問http://192.168.0.104:8888,便可觸發PhpStorm對xdebug調試功能,自動進入debug模式。這裏用到到php項目是yaf框架到最簡單到demo。

 

12.瀏覽器響應結果(這裏返回到是一個json格式的數據)

相關文章
相關標籤/搜索