爲 PhpStorm 配置 Xdebug 來調試代碼

爲 PhpStorm 配置 Xdebug 來調試代碼

當項目愈來愈複雜,排錯就愈加困難。
你覺得代碼是這麼運行的,但就是有未想到的功能致使流程變得不可捉摸。
此時咱們須要調試啊調試...javascript

PhpStorm 是一款優秀的 PHP IDE,排除其 Java 系出身致使的資源佔用狀況不理想外,其功能和易用性是毋庸質疑的。
好,再說下去就是軟文了。php

PhpStorm 內建了 Zend Debugger 和 Xdebug 支持,使用簡單的配置咱們就能夠開始調試代碼了。咱們以 Xdebug 爲例來講明下。java

爲 PHP 安裝 Xdebug 擴展

Win 下的安裝較爲簡單,直接下載適合的版本的 dll 文件,寫入到 php.ini 配置中就能夠了。
咱們介紹下源代碼編譯方式。

Xdebug 下載頁面 找到最新的源代碼,如今的版本是 2.2.1web

cd /Users /micate /Downloads / wget http: //xdebug.org /files /xdebug-2.2.1.tgz tar zxvf xdebug-2.2.1.tgz cd xdebug-2.2.1 /
 
phpize
.
/configure; make sudo make install

嗯,不出意外的話,會提示 xdebug.so 已經被放置在 ... 位置上。記住這個位置,複製下來。瀏覽器

打開 php.ini,在最後面追加下述配置:app

[xdebug] zend_extension = "/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"
 
xdebug.idekey
= "PHPSTORM"
 
xdebug.remote_host
= 127.0.0.1
 
xdebug.remote_enable
= on

上面的位置要與剛剛安裝的位置保持一致。關於 xdebug.so 如何配置,Xdebug 文檔中有說明phpstorm

Configure PHP to Use Xdebug編輯器

  1. add the following line to php.ini: zend_extension="/wherever/you/put/it/xdebug.so" (for non-threaded use of PHP, for example the CLI, CGI or Apache 1.3 module) or: zend_extension_ts="/wherever/you/put/it/xdebug.so" (for threaded usage of PHP, for example the Apache 2 work MPM or the the ISAPI module). Note: In case you compiled PHP yourself and used --enable-debug you would have to use zend_extension_debug=. From PHP 5.3 onwards, you always need to use the zend_extension PHP.ini setting name, and not zend_extension_ts, nor zend_extension_debug. However, your compile options (ZTS/normal build; debug/non-debug) still need to match with what PHP is using.
  2. Restart your webserver.
  3. Write a PHP page that calls 'phpinfo()' Load it in a browser and look for the info on the Xdebug module. If you see it next to the Zend logo, you have been successful! You can also use 'php -m' if you have a command line version of PHP, it lists all loaded modules. Xdebug should appear twice there (once under 'PHP Modules' and once under 'Zend Modules').

其中使用 zend_extension_ts 仍是 zend_extension 仍是神馬神馬,與 PHP 版本有關,仔細看上面的說明。ide

重啓下 Web Server(Apache / Nginx),使用 phpinfo() 頁面或命令行工具,確認模塊安裝完成。工具

配置 PhpStorm

本節參考了 Configuring PHP debugging in PhpStorm 2.0 一文:

PhpStorm 以最新版的 4.0.3 爲例,版本不一樣操做會有些許區別。

打開 PhpStorm,新建或打開一個項目,打開偏好設置界面:

依圖所示,確認 Debug 設置無誤(提示,能夠在左上角直接搜索 Debug 來定位到設置項):

單擊左側的 Servers,添加一個 Debug Server:

其中 Host 和 Port 根據本身要調試的實際狀況來寫,先不要加目錄或查詢字符串。後面選擇 Xdebug。
而後 Apply 和 OK,回到編輯器界面。

點擊菜單裏的 Run - Configurations:

在 運行/調試 對話框中,依圖配置:

如圖所示:點擊 添加 按鈕,選擇 PHP Web Application,並在右側輸入配置名稱,選擇咱們剛剛添加的 Server,Start URL 中填寫調試可能所需的查詢字符串,選擇好默認瀏覽器,最後點擊 Apply 和 OK,確認配置。

而後,還有一步:

  1. 在程序中設置好斷點;
  2. 在工具欄中,選擇好要調試的應用;
  3. 點擊 Start Listen PHP Debug Connections 按鈕,即那個紅色的電話按鈕,讓其變成綠色,即開始監聽 PHP Debug 鏈接;

因而,終於能夠開始了。
點擊上圖中的 Debug 按鈕,或者從菜單中選擇 Run - Debug,你就開始了 Debug 之旅...

其餘說明

根據斷點配置,或在打開 Debug URL 的過程當中,或在 POST 以後,若是 PhpStorm 監聽到了 Debug 鏈接,就會當即切換到編輯器界面,並跳轉到設置的斷點處,瀏覽器端會等待 PhpStorm 的操做。

你能夠隨時中斷 PhpStorm 的調試,或方便的進行 Step Into / Step Over / Run to cursor(這個刁爆了):

熟悉 Java 的童鞋會對這個界面感到親切,吼吼。

哎呀,不想調試了,PhpStorm 卻老是跳出來?記得剛剛那個電話按鈕嘛,再點一下,讓其變成紅色,就行了。

先到這裏,嗯哼。本身搗鼓搗鼓吧。

相關文章
相關標籤/搜索