使用場景
一臺MAC上安裝了phpstorm,虛擬機安裝了對應的web程序,需要調試。
坑點,網上教程太多,不如看官網,需要按照xdebug版本來配置php.ini
https://www.jetbrains.com/help/phpstorm/2023.3/configuring-xdebug.html#-2xfn1k_72
安裝Xdebug
坑點2、xdebug最新版本不支持32bit了,但是在歷史版本還是可以支持32bit。
https://xdebug.org/download/historical
開啟debug
具體php.ini配置文件如下:
如下配置適用于xdebug3,xdebug2相關配置不同,具體的改變可以參考網站:https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_port
[Xdebug]
zend_extension=C:/E-office_Server/php/ext/php_xdebug-3.1.6-7.4-vc15-nts.dll
xdebug.start_with_request=yesxdebug.mode=debugxdebug.client_port=9003 xdebug.client_host=10.37.129.2 # 你的phpstorm所在的主機ip
在自己網站根目錄創建如下文件內容,可以用于輔助查看debug配置是否正確,但是好像挺雞肋,就不貼代碼了:https://gist.github.com/litzinger/8fd06ab6e5033b7ff8d8
開啟監聽:
然后在phpstorm中配置xdebug的debug port為9003
servers中配置網站的網頁,然后建立對應的路徑映射:也就是本機的路徑和調試網站的對應路徑
最后配置并開始調試
成功斷點
疑問
按道理來講,我之前在php.ini中配置了xdebug.idekey=“PHPSTORM”,應該需要在請求時添加一個參數,類似于:Cookie:XDEBUG_SESSION=PHPSTORM(或者在get請求中添加)。但是實際測試發現并不需要添加,沒仔細研究過這個問題,大概是xdebug3的新功能xdebug.start_with_request參數導致的,我也是猜的,就不細究,能調就行。