phpStorm中使用xdebug斷點調試php代碼

配置好xdebug,也能使得phpstorm像java哪像跑斷點調試,爽的一筆!!!php

下載xdebug並配置html

[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            ;遠程端口號

設置phpstormjava

有4處設置nginx

菜單欄,file->settings->php下有3處,分別是:web

》Serversapache

name內容隨便,其餘因爲是本機本地項目,因此localhost,80,debug。服務器

》debugapp

debug port保持和php.ini裏配置的remote_port相同phpstorm

》dbgp proxyide

idekey保持和php.ini一致,主機端口和server同樣

第4個配置

圖1:

 

圖2:

圖1右上角的三個圈圈,第一個紅色,選擇裏面的edit configure彈出圖2,新建配置php web application的選項便可,具體內容見上圖圖2。

開始

圖1右上角紫色圈圈,點擊切換綠色,啓動調試監聽,點擊第二個藍色圈圈便可啓動調試。

注意:本地的web服務器要開啓,好比nginx,apache等,監聽80端口。

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鏈接後,客戶端就能夠爲咱們提供遠程調試服務了,遠程調試會話開啓流程以下圖所示:

相關文章
相關標籤/搜索