php程式碼審計之——phpstorm動態調試

xdebug調試

調試環境部署

xdebug的版本需要與PHP版本相對於,所以不要輕易改變PHP環境版本。

0 配置php解析器

image-20211229220649556

1 下載對應版本的xdebug

xdebug官網下載地址://xdebug.org/download.php

你需要仔細分析和選擇要下載的對應版本,否則無法調試。由於非常容易出錯,建議採用下面這種簡單方法:

xdebug網站提供一個自動分析你系統對應的xdebug版本的頁面,網址是 //xdebug.org/wizard.php

image-20211229152537653

在頁面中需要粘貼進去php版本資訊,也就是phpinfo()函數的資訊,如下圖:

image-20211229154756307

ctrl+A全選這個頁面的資訊,然後粘貼到第一個圖片的頁面中。

image-20211229154743121

點擊 analyse my phpinfo() output 按鈕

將下載的DLL文件拷貝到指定目錄,按照頁面上的提示即可

image-20211229154903685

image-20211229155831416

到此為止,xdebug的下載和啟用就完成了,重新運行 phpinfo.php

image-20211229155923265

2 修改php.ini文件里的xdebug配置項

xdebug2:

[XDebug]
xdebug.profiler_output_dir="C:\phpstudy2018\PHPTutorial\tmp\xdebug"
xdebug.trace_output_dir="C:\phpstudy2018\PHPTutorial\tmp\xdebug"
zend_extension = "C:\phpstudy2018\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug.dll"

xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
;開啟遠程調試
xdebug.remote_enable = 1
;客戶機xdebug調試協議
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = "req"
xdebug.remote_host=127.0.0.1
;xdebug.remote_port默認值為9000,這裡需要跟phpstorm配置一致,下面有說明
xdebug.remote_port=9000
;idekey 區分大小寫
xdebug.idekey="PHPSTORM"

xdebug3:

[xdebug]
zend_extension = "C:\phpstudy2018\PHPTutorial\php\php-7.2.1-nts\ext\php_xdebug.dll"
xdebug.mode= "debug"			
#性能分析文件存放位置 
xdebug.output_dir = "C:\phpstudy2018\PHPTutorial\tmp\xdebug" 	
#步驟調試器,應該是步入步進步出的吧
xdebug.remote_handler = "dbgp" 	
xdebug.idekey="PHPSTORM"
xdebug.start_with_request = yes 
#由remote_host替換過來了,就寫本機的就行
xdebug.client_host=127.0.0.1 		
#由remote_port替換過來了,調試埠
xdebug.client_port=9000  	

3 配置phpstorm

Ctrl+Alt+S快捷鍵打開設置,搜索xdebug,其中的Debug port確保不被其他應用佔用,當程式無法進入斷點時,可以考慮是否有其他應用佔用了你本地的9000埠。

image-20211229164949732

在DBGp Proxy中配置你的idekey,idekey和在php.ini配置文件中xdebug.idekey項的值一樣,host是你的伺服器ip或域名

image-20211229165703412

【File】 ->【Settings】 ->【Languages & Frameworks】 ->【PHP】的servers中配置xdebug服務

image-20211229171157972

測試一下配置是否成功

image-20211229232215086

(如果不成功,根據報錯去修改)

4 第一個調試

調試使用:

新建一個運行調試配置

image-20211229230012936

新建php web page頁面

image-20211229231605426

照著這樣填就好了。

開始調試:

設置斷點,開啟debug監聽。

image-20211229231821882

點擊綠色的甲殼蟲開始調試。

image-20211229232057111

紅色圓中有個對號,是說明改斷點生效了

即可看到調試數據在下方顯示。

補充–xdebug helper插件

使用該插件主要是為了彌補xdebug本身的局限,直接使用phpstorm xdebug調試的話,設置的斷點需要每次都重頭運行到斷點處,而不能靈活的終止或者其他操作
xdebug helper就可以實現這個功能。需要終止的時候選擇disable選項即可,而不需要從頭開始。

安裝使用:

直接搜索xdebug helper。安裝成功後右鍵進入擴展選項

image-20220120175517461

然後,前面正常配置

瀏覽器開啟debug,發包即可

image-20220120180803500

image-20220120180831389

參考

//blog.csdn.net/yinhangbbbbb/article/details/79247331

//www.cnblogs.com/lightsrs/p/9612409.html

//www.cnblogs.com/beidaxmf/p/14527335.html