Phpstorm+Xdebug斷點(diǎn)調(diào)試PHP的方法
為什么使用斷點(diǎn)調(diào)試
大家可能會(huì)覺(jué)得使用var_dump和echo也能調(diào)試啊,為什么還要安裝Xdebug斷點(diǎn)調(diào)試呢?
確實(shí)是這樣。但是var_dump和echo寫(xiě)的代碼后面還要?jiǎng)h除,而且明確是知道在哪打的,如果發(fā)現(xiàn)沒(méi)有運(yùn)行到打點(diǎn)的地方,還要修改代碼再運(yùn)行一次。而斷點(diǎn)調(diào)試,可以在調(diào)試過(guò)程中動(dòng)態(tài)打斷點(diǎn),逐行查看當(dāng)前各個(gè)變量的值,甚至臨時(shí)修改變量的值,更方便。建議大家使用Xdebug斷點(diǎn)調(diào)試。
安裝Xdebug
pecl install xdebug
如果是php7以下版本,需要加上版本號(hào):
pecl install xdebug-2.5.5
pecl如果提示找不到該擴(kuò)展,則使用源碼編譯。例如:
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 ;如果開(kāi)啟此,將忽略下面的 xdebug.remote_host 的參數(shù) ;xdebug.remote_connect_back=1 ;自動(dòng)啟動(dòng),無(wú)需XDEBUG_SESSION_START=1 xdebug.remote_autostart=1 ;宿主機(jī)IP xdebug.remote_host=192.168.36.101 xdebug.remote_port=19001 xdebug.remote_handler=dbgp
需要注意的是:
1、是zend_extension,不是extension;
2、xdebug.remote_autostart
開(kāi)啟后,就不用手動(dòng)在請(qǐng)求url里加上XDEBUG_SESSION_START=1
了,只要Phpstorm開(kāi)啟斷點(diǎn)調(diào)試就ok了。很方便;
3、remote_host
配置的是安裝有Phpstorm的機(jī)器,這點(diǎn)需要注意。如果php安裝的機(jī)器和Phpstorm安裝的機(jī)器是同一臺(tái)機(jī)器,那么地址寫(xiě)127.0.0.1
即可。
如果你采用的是docker環(huán)境,remote_host
寫(xiě)宿主機(jī)的IP。
4、xdebug.remote_port
端口我寫(xiě)的是19001
,那么Phpstorm也需要修改。
配置完成后需要重啟php-fpm。
配置Phpstorm
配置也很簡(jiǎn)單,配置端口即可:
接下來(lái)就可以斷點(diǎn)調(diào)試了。開(kāi)啟監(jiān)聽(tīng):
請(qǐng)求url的時(shí)候就會(huì)自動(dòng)捕捉到請(qǐng)求。
注意:
1、不要同時(shí)開(kāi)啟多個(gè)項(xiàng)目的監(jiān)聽(tīng);
2、監(jiān)聽(tīng)遠(yuǎn)程代碼的時(shí)候,如果宿主機(jī)和代碼所在目錄結(jié)構(gòu)一致,會(huì)直接監(jiān)聽(tīng)成功。否則,會(huì)提示設(shè)置代碼映射關(guān)系。也可以手動(dòng)設(shè)置:
這里因?yàn)樗拗鳈C(jī)是windows,代碼在linux里,目錄不一致,做了映射。否則斷點(diǎn)會(huì)失敗。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Vagrant(WSL)+PHPStorm+Xdebu 斷點(diǎn)調(diào)試環(huán)境搭建
- PhpStorm本地?cái)帱c(diǎn)調(diào)試的方法步驟
- 解析phpstorm + xdebug 遠(yuǎn)程斷點(diǎn)調(diào)試
- PHPStorm+Xdebug進(jìn)行emote Debug時(shí)無(wú)法進(jìn)入斷點(diǎn)問(wè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實(shí)現(xiàn)遠(yuǎn)程調(diào)試的方法
- 圖文詳解phpstorm配置Xdebug進(jìn)行調(diào)試PHP教程
- phpstorm斷點(diǎn)調(diào)試方法圖文詳解
相關(guān)文章
Yii2 ActiveRecord多表關(guān)聯(lián)及多表關(guān)聯(lián)搜索的實(shí)現(xiàn)
這篇文章主要介紹了Yii2 ActiveRecord多表關(guān)聯(lián)及多表關(guān)聯(lián)搜索的實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2016-06-06thinkPHP5.0框架API優(yōu)化后的友好性分析
這篇文章主要介紹了thinkPHP5.0框架API優(yōu)化后的友好性,結(jié)合具體實(shí)例分析了thinkPHP5.0框架進(jìn)行API優(yōu)化后在數(shù)據(jù)輸出及錯(cuò)誤調(diào)試方面的友好性改進(jìn),需要的朋友可以參考下2017-03-03php while循環(huán)得到循環(huán)次數(shù)
在for循環(huán)中,我們很容易得到循環(huán)次數(shù),因?yàn)槭亲鳛闂l件出現(xiàn)的。在while也可以得到,如下:2013-10-10Codeigniter上傳圖片出現(xiàn)“You did not select a file to upload”錯(cuò)誤解決辦法
這篇文章主要介紹了Codeigniter上傳圖片出現(xiàn)“You did not select a file to upload”的解決辦法,需要的朋友可以參考下2014-06-06