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


本教程主要演示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重點]安裝好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格式的數據)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM