配置好xdebug,也能使得phpstorm像java哪像跑斷點調試,爽的一筆!!!
下載xdebug並配置
[XDebug] zend_extension=php_xdebug-2.4.0rc3-5.6-vc11-nts.dll xdebug.collect_params = 1 ;打開收集“函數參數”的功能。將函數調用的參數值列入函數過程調用的監測信息中。此配置項的默認值為off。 xdebug.collect_return = on ;收集函數返回值 xdebug.profiler_enable=0 ;打開效能監測器 xdebug.profiler_enable_trigger = 1 ;不自動打開,觸發打開 xdebug.auto_trace=on ;自動打開“監測函數調用過程”的功模。該功能可以在你指定的目錄中將函數調用的監測信息以文件的形式輸出。此配置項的默認值為off。 xdebug.auto_profile = on ;自動打開性能檢測 xdebug.trace_output_dir="F:/php/xdebug/trace_dir" ;設定函數調用監測信息的輸出文件的路徑 xdebug.profiler_output_dir="F:/php/xdebug/profiler_dir" xdebug.profiler_output_name = "cachegrind.out.%p" ;設定效能監測信息輸出文件的路徑 xdebug.remote_enable=on ;遠程調試打開 xdebug.remote_handler=dbgp ;遠程頭請求方式 xdebug.remote_host=localhost ;遠程地址,指的是連接本php所在服務器的客戶端ip xdebug.remote_port=9000 ;遠程端口號
xdebug.idekey=PHPSTORM
設置phpstorm
有4處設置
菜單欄,file->settings->php下有3處,分別是:
》Servers
name內容隨便,其他由於是本機本地項目,所以localhost,80,debug。
》debug
debug port保持和php.ini里配置的remote_port相同
》dbgp proxy
idekey保持和php.ini一致,主機端口和server一樣
第4個配置
圖1:
圖2:
圖1右上角的三個圈圈,第一個紅色,選擇里面的edit configure彈出圖2,新建配置php web application的選項即可,具體內容見上圖圖2。
》瀏覽器配置
瀏覽器安裝xdebug插件,谷歌火狐都可以,火狐較流暢。
開始
打開瀏覽器,開啟xdebug插件。上圖1右上角紫色圈圈,點擊切換綠色,啟動調試監聽,點擊第二個藍色圈圈即可啟動調試。
注意:本地的web服務器要開啟,比如nginx,apache等,監聽80端口。
注意:打上斷點,手動瀏覽器輸入url可以進入斷點。
注意:xdebug版本與phpstorm和php版本的一致性。
xdebug原理
參考http://www.softown.cn/post/117.html
使用Zend Studio或其他客戶端(下面統稱"客戶端")通過Xdebug進行遠程調試時,客戶端就會監聽Xdebug調試器(Zend Studio已內置)設置的調試端口(默認為9000),
並在當前調試的URL后面加上了XDEBUG_SESSION_START的請求參數,參數值為客戶端標識(相當於用戶名,用以區別不同的客戶端),然后向PHP服務器發送請求,例如: http://localhost/index.php?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=13986635740313 當PHP服務器的Xdebug模塊檢測到請求URL中帶有XDEBUG_SESSION_START參數時,則將該請求的響應掛起,並自動進入調試模式。此時,Xdebug將會嘗試以指定的協議(一般是DBGP)與
Xdebug配置中指定的地址xdebug.remote_host:xdebug.remote_port建立連接。 如果沒有特殊設置,xdebug.remote_host默認為localhost,xdebug.remote_port默認為9000,默認的連接地址即是localhost:9000。 默認配置下,Xdebug只能為一個客戶端提供遠程調試服務,如果想要為多個客戶端提供遠程調試服務,則需要設置xdebug.remote_connect_back = 1。 當客戶端和Xdebug建立DBGP連接后,客戶端就可以為我們提供遠程調試服務了,遠程調試會話開啟流程如下圖所示: