本教程主要演示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格式的數據)