Phpstorm+Xdebug斷點調(diào)試PHP的方法
為什么使用斷點調(diào)試
大家可能會覺得使用var_dump和echo也能調(diào)試啊,為什么還要安裝Xdebug斷點調(diào)試呢?
確實是這樣。但是var_dump和echo寫的代碼后面還要刪除,而且明確是知道在哪打的,如果發(fā)現(xiàn)沒有運行到打點的地方,還要修改代碼再運行一次。而斷點調(diào)試,可以在調(diào)試過程中動態(tài)打斷點,逐行查看當(dāng)前各個變量的值,甚至臨時修改變量的值,更方便。建議大家使用Xdebug斷點調(diào)試。
安裝Xdebug
pecl install xdebug
如果是php7以下版本,需要加上版本號:
pecl install xdebug-2.5.5
pecl如果提示找不到該擴展,則使用源碼編譯。例如:
wget http://pecl.php.net/get/xdebug-2.5.5.tgz \ && tar xzf xdebug-2.5.5.tgz && cd xdebug-2.5.5/ \ && phpize \ && ./configure \ && make && make install
注:php5.6只能使用2.5及以下版本xdebug。
安裝好后需要在php.ini進(jìn)行配置:
[xdebug] zend_extension=xdebug.so xdebug.enable=1 xdebug.remote_enable=1 ;如果開啟此,將忽略下面的 xdebug.remote_host 的參數(shù) ;xdebug.remote_connect_back=1 ;自動啟動,無需XDEBUG_SESSION_START=1 xdebug.remote_autostart=1 ;宿主機IP xdebug.remote_host=192.168.36.101 xdebug.remote_port=19001 xdebug.remote_handler=dbgp
需要注意的是:
1、是zend_extension,不是extension;
2、xdebug.remote_autostart開啟后,就不用手動在請求url里加上XDEBUG_SESSION_START=1了,只要Phpstorm開啟斷點調(diào)試就ok了。很方便;
3、remote_host配置的是安裝有Phpstorm的機器,這點需要注意。如果php安裝的機器和Phpstorm安裝的機器是同一臺機器,那么地址寫127.0.0.1即可。
如果你采用的是docker環(huán)境,remote_host寫宿主機的IP。
4、xdebug.remote_port端口我寫的是19001,那么Phpstorm也需要修改。
配置完成后需要重啟php-fpm。
配置Phpstorm
配置也很簡單,配置端口即可:

接下來就可以斷點調(diào)試了。開啟監(jiān)聽:

請求url的時候就會自動捕捉到請求。
注意:
1、不要同時開啟多個項目的監(jiān)聽;
2、監(jiān)聽遠(yuǎn)程代碼的時候,如果宿主機和代碼所在目錄結(jié)構(gòu)一致,會直接監(jiān)聽成功。否則,會提示設(shè)置代碼映射關(guān)系。也可以手動設(shè)置:

這里因為宿主機是windows,代碼在linux里,目錄不一致,做了映射。否則斷點會失敗。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Vagrant(WSL)+PHPStorm+Xdebu 斷點調(diào)試環(huán)境搭建
- PhpStorm本地斷點調(diào)試的方法步驟
- 解析phpstorm + xdebug 遠(yuǎn)程斷點調(diào)試
- PHPStorm+Xdebug進(jìn)行emote Debug時無法進(jìn)入斷點問題排查
- phpstorm配置Xdebug進(jìn)行調(diào)試PHP教程
- PHPStorm+XDebug進(jìn)行調(diào)試圖文教程
- 使用PHPStorm+XDebug搭建單步調(diào)試環(huán)境
- PhpStorm 如何優(yōu)雅的調(diào)試Hyperf的方法步驟
- PhpStorm配置Xdebug調(diào)試的方法步驟
- 使用phpstorm和xdebug實現(xiàn)遠(yuǎn)程調(diào)試的方法
- 圖文詳解phpstorm配置Xdebug進(jìn)行調(diào)試PHP教程
- phpstorm斷點調(diào)試方法圖文詳解
相關(guān)文章
Yii2 隊列 shmilyzxt/yii2-queue 簡單概述
這篇文章主要介紹了Yii2 隊列 shmilyzxt/yii2-queue 的簡單概述,需要的朋友可以參考下2017-08-08
在Laravel5中正確設(shè)置文件權(quán)限的方法
這篇文章主要給大家介紹了關(guān)于如何在Laravel5中正確設(shè)置文件權(quán)限的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Laravel5具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
淺談使用 Yii2 AssetBundle 中 $publishOptions 的正確姿勢
本篇文章主要介紹了淺談使用 Yii2 AssetBundle 中 $publishOptions 的正確姿勢,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11
PHP防止post重復(fù)提交數(shù)據(jù)的簡單例子
這篇文章主要介紹了PHP防止post重復(fù)提交數(shù)據(jù)的簡單例子,使用session記錄一個數(shù)值的方法實現(xiàn),需要的朋友可以參考下2014-06-06

