PHPStorm配置xdebug調試php代碼

PHPStorm配置xdebug調試php代碼

V20160907

理由:

當項目越來越復雜,排錯就越發困難。
你以為代碼是這么運行的,但就是有未想到的功能導致流程變得不可捉摸。
此時我們需要調試,調試……

附注:PhpStorm 內建了 Zend Debugger 和 Xdebug 支持

步驟(windows):

  1. (服務端)安裝配置xdebug
      1. 下載適合當前PHP版本的dll文件,
        官方下載地址:<u>http://xdebug.org/download.php</u>;
      1. 將下載的dll文件放入php安裝目錄下的擴展文件夾(通常為ext文件夾)中;
      1. 設置 php.ini 配置文件,配置xdebug

xdebug詳細配置參看官方配置文檔

設置內容如下

; XDEBUG Extension

[xdebug]

; 擴展文件路徑

zend_extension = “E:/wamp/bin/php/php5.3.10/zend_ext/php_xdebug-2.1.2-5.3-vc9.dll”

;zend_extension_ts = “d:/wamp/php/ext/php_xdebug-2.1.2-5.2-vc6.dll”

;任意IDEKey,這里設定為PHPSTORM

xdebug.idekey = “PHPSTORM”

;xdebug.collect_return = On

; 追蹤

;xdebug.auto_trace = On

;xdebug.trace_output_dir = “d:/wamp/php/debuginfo”

; 效能評測器

;xdebug.profiler_enable = on

;xdebug.profiler_output_dir = “d:/wamp/php/debuginfo”

;xdebug.profiler_enable_trigger = on

;xdebug.profiler_output_dir = “E:/wamp/tmp”

;xdebug.profiler_output_name = cachegrind.out.%t.%p

; 遠程調試

xdebug.remote_enable = On ; 啟用遠程調試

xdebug.remote_mode = “req”

; 遠程主機的IP地址或域名

xdebug.remote_host = “localhost” ; 遠程服務器

xdebug.remote_port = 9001 ; 遠程服務器端口

xdebug.remote_handler = “dbgp” ;

;xdebug.remote_autostart = 1 ;

; xdebug 的日志文件

xdebug.remote_log = “/var/log/xdebug/xdebug.log” /**END**********************************************************/

重要:確保php.ini文件的有效性,如果使用一鍵安裝包,可能有多個php.ini文件,設置錯誤可能報“****waiting for incoming connection with ide key '*****'****”錯誤,筆者為這個問題曾排錯一晚上,復制以上代碼注意引號問題

  1. 重啟Apache服務器(修改php.ini文件后均需重啟服務器讓配置文件生效);
  1. (客戶端)安裝、配置PHPStorm(這里的配置以PHPStorm 8.0.2為準)
  1. 安裝PHPStorm(略);

  2. 配置xdebug

I 打開配置位置:file -> settings -> Languages & Frameworks -> PHP -> Debug

配置參數:一般配置xdebug 的調試端口(debug port), 設置為php.ini中設置好的遠程調試端口即可,默認

    端口任意:默認9000,勾選幾個附屬選項;

[圖片上傳失敗...(image-588f69-1607395368150)]

    II 打開配置位置:file -> settings -> Languages & Frameworks -> PHP -> Debug

    -> DBGp Proxy

    IDE Key 設置為php.ini中xdebug配置項的xdebug.idekey的值,Host設置為要調試的主機域名,Port端口,與php.ini中的端口保持一致;

[圖片上傳失敗...(image-1a8b7a-1607395368150)]

3) 添加調試服務器(如已添加可省略此步驟)

打開配置位置:file -> settings -> Languages & Frameworks -> PHP -> Servers

配置參數:配置主機名(執行項目的主機名)、端口、調試軟件,其中主機名按實際情況設置,調試軟件選擇xdebug;

備注:如果Servers選項未能顯示,請導入一個項目。

[圖片上傳失敗...(image-857190-1607395368150)]

4) 配置調試程序(php)

打開運行配置:Run -> Edit configurations… -> +(添加) -> PHP Web Application

設置服務器為剛添加的服務器,并設置開始的url(Start URL:即你要調試的php頁面,可在url后邊加上參數,如:user.php?act=login)和瀏覽器即可

PHPSTORM官方配置說明:

<u>http://blog.jetbrains.com/webide/2011/03/configure-php-debugging-in-phpstorm-2-0/</u>

3. 安裝瀏覽器調試插件(安裝步驟略)

火狐下安裝easy xdebug

谷歌下安裝 xdebug helper

官方插件說明:<u>http://www.jetbrains.com/phpstorm/marklets/</u>

  1. 走到這步配置基本就算完成,可以開始調試程序
  1. 在程序中設置斷點

  2. 在工具欄中選擇要調試的應用(位于軟件右上角的下拉列表)

  3. 點擊 Start Listen PHP Debug Connections 按鈕,即那個紅色的電話按鈕,讓其變成綠色,即開始監聽 PHP Debug 連接;

  4. 點擊工具欄中的 Debug(臭蟲圖標) 按鈕,或者從菜單中選擇 Run –> Debug,你就開始了 Debug 之旅…

附屬說明:根據斷點配置,或在打開 Debug URL 的過程中,或在 POST 之后,如果 PhpStorm 監聽到了 Debug 連接,就會立即切換到編輯器界面,并跳轉到設置的斷點處,瀏覽器端會等待 PhpStorm 的操作。不想調試了,記得剛剛那個電話按鈕嘛,再點一下,讓其變成紅色,就好了。

本文檔參考:

<u>http://blog.csdn.net/meegomeego/article/details/25731615</u>

<u>http://www.chenxuanyi.cn/xampp-phpstorm-xdebug.html</u>

相關問題:

1. xdebug是什么?

A:請參看http://baike.baidu.com/link?url=44ufFU1aOz4YYN-pBOTWIUNQFcxAg0dHIVnQSpjBJ-zX5k6nF6vSHGWEoohO5qaP3tbum1E_KBqG97Y67oywaq

2. 判斷xdebug是否安裝?

方法1: 查看phpinfo頁面,搜索是否存在xdebug;

方法1:查看php擴展文件夾中是否存在xdebug擴展;

方法3:命令行執行“php.exe.path”/php -m

3. "waiting for incoming connection with ide key '*****'"的可能原因?

1. 配置文件錯誤(非常嚴重的低級錯誤),wamp等軟件的php.ini文件在Apache下面;

2. Phpstorm配置錯誤,例如端口號與ini文件不一致。

3. 沒有設置有效的斷點也會報這樣的錯誤,比方說我在B頁面設置了斷點,而要調試的頁面根本不走B頁面;

4. DBGp Proxy中的host設置錯誤;

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容