php程式碼審計之——phpstorm動態除錯

yokan發表於2022-04-05

xdebug除錯

除錯環境部署

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

0 配置php解析器

image-20211229220649556

1 下載對應版本的xdebug

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

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

xdebug網站提供一個自動分析你係統對應的xdebug版本的頁面,網址是 https://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

參考

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

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

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

相關文章