phpstorm啟用xdebug調試


工要善其事,必先利其器,首先我們准備的是強大開發工具IDE : PhpStorm

我們用的是最新版 phpstorm 2019.3 (網上有破解激活方法)

然后用的是 phpStudy v8 環境套件 (官網下載地址: https://www.xp.cn )

windows下的php安裝XDebug拓展: https://www.cnblogs.com/phplog/articles/11038520.html

 創建一個網站,我選的php版本是 php7.2:

因為框架用的 thinkphp 5.1 , 服務器啟用的是 nginx , 所以還要再設置一下偽靜態

 thinkphp 5.0, 5.1 的 nginx偽靜態規則:

if (!-e $request_filename) {
    rewrite  ^(.*)$  /index.php?s=/$1  last;
    break;
}

 thinkphp 3.2 的nginx偽靜態規則:

if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?s=$1 last;
    break;
}

 然后重啟nginx服務。

 編輯對應版本的 php.ini 文件配置:

 

 

 在php.ini配置文件中加入配置:

[XDebug]
;指定Xdebug擴展文件的絕對路徑
zend_extension="E:\PHPServer\phpStudy_v8\Extensions\php\php7.2.9nts\ext\php_xdebug.dll"
;指定堆棧跟蹤文件的存放目錄
xdebug.trace_output_dir="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug"
;是否開啟遠程調試
xdebug.remote_enable=on
;開啟遠程調試自動啟動
xdebug.remote_autostart=on
xdebug.remote_mode=req
;指定遠程調試的處理協議
xdebug.remote_handler="dbgp"
;指定遠程調試的主機名
xdebug.remote_host="127.0.0.1"
;指定遠程調試的端口號
xdebug.remote_port=9100
;是否啟用Xdebug的性能分析,並創建性能信息文件
;xdebug.profiler_enable=on
;xdebug.profiler_enable_trigger=0
;指定性能分析信息文件的輸出目錄
xdebug.profiler_output_dir="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug"
;指定傳遞給DBGp調試器處理程序的IDE Key
xdebug.idekey="PHPSTORM"
;啟用代碼自動跟蹤
;xdebug.auto_trace=on
;允許收集傳遞給函數的參數變量
xdebug.collect_params=on
;允許收集函數調用的返回值
xdebug.collect_return=on
;是否收集變量
xdebug.collect_vars=on
;是否開啟異常跟蹤
xdebug.show_exception_trace=0
;顯示局部變量
xdebug.show_local_vars=on
;顯示默認的錯誤信息
xdebug.default_enable=on
;xdebug.remote_log="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug\remote.log"

 特別注意:

zend_extension="E:\PHPServer\phpStudy_v8\Extensions\php\php7.2.9nts\ext\php_xdebug.dll" 這個路徑根據自己的進行修改

xdebug.trace_output_dir="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug" 這個文件夾目錄必須存在,沒有的話手動創建目錄

xdebug.profiler_output_dir="E:\PHPServer\phpStudy_v8\Extensions\tmp\xdebug" 這個文件夾目錄同上

 

xdebug.remote_port=9100 我把監聽端口設置為9100

xdebug.idekey="PHPSTORM"  把IDE KEY設置為 PHPSTORM

 

然后配置 PHPStorm 配置:

Language & Frameworks > PHP > Debug , 設置 Xdebug 的 Debug Port 為 上面設置的 9100 端口

點擊工具欄 配置 Edit Configurations..

彈出窗口中,點擊 + 號, 點擊添加 PHP Remote Debug

 

彈出窗口 Run/Debug Configurations 配置 Configuration > Filter debug connection by IDE key 前面打勾,

選擇一個Server, 沒有 Server的話 點擊右邊的 ... 按鈕, 添加一個 Server

 

新建一個 Server , 配置 Debugger 為 Xdebug

 

 彈出窗口 Run/Debug Configurations 配置中 IDE key 填寫 PHPSTORM

 

 

用Postman 來測試接口

 就會發現 一直在發送等待狀態 Sending request

我們返回 PhpStorm 編輯器,就會出現 XDebug 斷點調試響應區域,XDebug配置算是完成了。

如果沒有喚醒phpstorm的debug調試功能,可以:

在postman請求中的COOKIE里加入XDEBUG_SESSION=PHPSTORM則可調起phpstrom的調試功能

在Headers中新增key:Cookie,Value:XDEBUG_SESSION=PHPSTORM

 

我們就可以方便的查看各種變量常量的運行值了:

 

編輯器其他配置:

 

以fpm方式-web的調試

 

 

 

 以cli模式運行xdebug:

 

 

 安裝瀏覽器Debug拓展:

1. Firefox火狐瀏覽器

安裝 Xdebug Helper for Firefox 拓展:

 拓展安裝完成后,就會多出一個debug按鈕:

 

2. Chrome谷歌瀏覽器

到谷歌應用商店: https://chrome.google.com/webstore/category/extensions?hl=zh-CN 搜索安裝 Xdebug helper 拓展:

 

 輸入 xdebug helper 然后按Enter回車健, 出現結果的第一條就是我們要安裝的拓展:

 

 安裝完成后,就會出現Debug按鈕:

 

 

 

 

 

XDebug調試的一些按鈕功能:

圖標 功能
重新執行DEBUG   Rerun XDebug Ctrl + F5
回到當前執行點的文件  Show Execution Point Alt + F10
不進入函數詳情,執行下一步 Step Over F8
進入函數內部,執行下一步 Step Into F7
強行進入某個方法  Force Step Into Alt + Shift + F7
單步執行到子函數內時,就可以執行完子函數余下部分,並返回到上一層函數。Step Out Shift + F8
執行到下一個斷點,或者鼠標懸停處Run to Cursor Alt + F9
執行修改變量或返回的結果用於二次調試Evaluate Expression Alt + F8
顯示值的地址 Show Values addresses
是否顯示空的值 , 默認是不顯示Show empty superglobals variables
將方法添加到跳過列表Add method to skip list
運行到下個斷點,沒有斷點就直接運行完成 Resume Program F9
停止本次debug Stop XDebug Ctrl + F2
管理所有斷點 View Breakpoints Ctrl + Shift + F8
忽略所有斷點 Mute Breakpoints

 

 調試按鈕說明:

 

F7 通過當前行,進入下一行,如果該行是方法,則進入方法體
F8 通過當前行,進入下一行,如果該行是方法,也直接進入下一行,不進入方法體
F9 通過整個流程,全部順序執行,除非遇到下一個斷點

 

F8 step over 步越 執行當前函數的下一步,如果有子函數,也不會進入,會一直執行到函數結束
F7 step into 步入 執行當前函數的下一步,如果有子函數,會從頭到尾執行子函數,還原了程序執行的最詳細的路線,從構造函數到結尾的每一步都會跳到。
Alt + Shift + F7 force step into 與 step into 相同,執行當前函數的下一步,如果有子函數也會進入子函數,只不過不會從頭到尾的還原函數執行的路線,會直接跳到子函數內第一步,構造函數等一些前置方法會忽略
Shift + F8 step out 步出 跳出當前執行的函數,跳到父函數的下一步。
Alt + F9 run to cursor 執行到下一個斷點處

 


免責聲明!

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



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