1. 程式人生 > >為PHPStorm配置Xdebug除錯環境

為PHPStorm配置Xdebug除錯環境

剛從Java轉到PHP上,一直以為PHP程式碼的除錯也會像Java一樣方便,今天查了一下,沒想到居然這麼複雜,這裡記一下配置過程。
第一次使用markdown寫部落格,感覺還挺好玩的。

我的環境

  • 作業系統:64位 win7 旗艦版 Service Pack 1
  • PHP版本:php-5.6.7-Win32-VC11-x64
  • Apache版本:httpd-2.4.12-win64-VC11
  • PHPStorm版本:PhpStorm 8.0.3

下載Xdebug

Xdebug是一個開放原始碼的PHP程式偵錯程式(即一個Debug工具),可以用來跟蹤,除錯和分析PHP程式的執行狀況。

配置php.ini

將下載的php_xdebug-2.3.2-5.6-vc11-x86_64.dll庫拷貝到%PHP_HOME%/ext目錄,然後開啟php.ini檔案新增如下配置:

[XDebug]
zend_extension=php_xdebug-2.3.2-5.6-vc11-x86_64.dll
xdebug.idekey="PHPSTORM"
xdebug.remote_handler = "dbgp"
xdebug.remote_mode = "req"
xdebug.remote_host=127.0.0.1
xdebug.remote_enable=on
xdebug.remote
_port = 9000 xdebug.remote_autostart = no

上面下載的dll庫放置位置不是固定,只要在php.ini配置檔案中準確指定即可,即zend_extension配置項指向dll庫檔案。
需要注意的是xdebug.idekey配置,這裡配置的值(當前為“PHPSTORM”)在phpstorm中及瀏覽器中都需要設定(下面有相關描述),可以改為其它值,但必須保證在這三處設定統一。
這一部分關於Xdebug的配置是很複雜的,這裡只是簡單地配置了一下,詳細配置可以查閱相關資料。
Xdebug全部可用配置可參考官方的一個連結:http://xdebug.org/docs/all_settings

This section describes all available configuration settings available in Xdebug.

PHPStorm設定

伺服器配置完成後,需要對PHPStorm作一些設定,使其能夠監聽到瀏覽器的請求。
以下設定步驟部分順序可以調整。

Deployment設定

開啟“Build, Execution, Deployment > Deployment”設定,建立一個專案部署條目,由於我是作本機專案的除錯,因此這裡設定型別為“Local or mounted folder”;然後指定專案路徑並設定Web服務的入口URL,如下圖所示:

Deployment設定

Server設定

定位到“Languages & Frameworks > PHP > Servers”配置,新增一個伺服器配置,Name自定義(我這裡用localhost),Host為localhost(本機除錯),Port(埠)設定為80,Debugger選擇Xdebug即可。

Server設定

配置完成後可以驗證一下是否配置成功,點選本配置介面中的“Validate remote environment”按鈕,在彈出的對話方塊中選擇“Deployment設定”步驟中設定的部署專案(這裡為sycms),在對話方塊的Information區域沒有出現錯誤資訊即表示Servers設定正確。

這裡寫圖片描述

Debug設定

找到Languages & Frameworks > PHP > Debug配置,將Debug port設定為9000(與php.ini配置檔案中的埠設定保持一致)。

Debug設定

然後展開Debug,設定DBGp如下圖所示:

這裡寫圖片描述

其中IDE Key即php.ini檔案中xdebug.idekey配置項的值。

Firefox瀏覽器設定

首先需要給Firefox安裝Xdebug外掛,我選用的是名為“The easiest Xdebug”的Firefox瀏覽器外掛,安裝後開啟外掛設定頁面,將IDEKey填寫到下圖中的紅框位置即可,如下所示:

這裡寫圖片描述

外掛安裝配置成功後需要將其啟用。

這裡寫圖片描述

如上圖所示在Firefox右上角有個爬蟲圖示,預設是灰色的,點選它會變成綠色並且蟲子的腳會有爬動的動畫,這樣表示啟用了Xdebug瀏覽器外掛。

如果使用Chrome瀏覽器,可以安裝Xdebug helper外掛(擴充套件程式,一般需要翻牆),安裝後配置IDEKey的值與Firefox基本一樣,然後點選圖示啟用即可。

使用Xdebug進行除錯

在PHPStorm中開啟“Run/Debug Configuration”配置,新建 一個“PHP Web Application”啟動項,指定正確的Server和Start URL後儲存,如下所示:

這裡寫圖片描述

在PHPStorm中開啟Xdebug監聽(啟動工具欄中樣子像電話聽筒的“Start Listening for PHP Debug Connnections”按鈕)。
最後在PHP程式碼中打上斷點,在瀏覽器中訪問“Run/Debug Configuration”配置中的“Start URL”對應的地址,即可與PHPStorm成功連線,如下所示:

這裡寫圖片描述

常見問題

第一次執行Xdebug除錯時,PHPStorm報瞭如下錯誤:

Cannot accept external Xdebug connection: Cannot evaluate expression'isset($_SERVER['PHP_IDE_CONFIG'])';

原因為php.ini檔案中dll檔案配置的是

extension=php_xdebug-2.3.2-5.6-vc11-x86_64.dll

將其改為zend_extension後重啟Apache即可,如下所示:

zend_extension=php_xdebug-2.3.2-5.6-vc11-x86_64.dll

參考資料