1. 程式人生 > >在NotePad++中安裝DBGP debugger除錯PHP程式

在NotePad++中安裝DBGP debugger除錯PHP程式

本文章涵蓋了NotePad++ 的安裝、Xdebug 的安裝、DBGP外掛 的安裝以及簡單的除錯Php 的示例。

DBGP外掛(PlugIn)如何工作

1、Web瀏覽器(例如:FireFox )通過Http埠(80)請求Url來訪問Apache Server。

2、XDebug 是Apache的一個擴充套件(DLL In Windows),類似於GD庫。

3、XDebug 是Web Server(Apache)與遠端除錯客戶端(例如:NotePad++的DBGP外掛 )的一個介面,他們之間通過9000埠通訊。

Wire Flow:

Web browser <==> Port 80 <==> <==> Port 9000



 <==> DBGp Plugin-notepad++

1、開啟NotePad++,BDGP外掛開啟9000埠。

2、Web browser向Apache 請求一個php頁面,請求的Url中包含一個指定的引數

(即:XDEBUG_SESSION_START)以便啟用遠端除錯。

3、Apache 呼叫Php 直譯器(Interpreter)。

4、Php直譯器載入XDebug 模組。

5、XDebug 模組檢測到第2步傳送的XDEBUG_SESSION_START引數,開啟遠端除錯。

6、XDebug 連線到遠端除錯客戶端(依賴於XDebug 的配置項,在php.ini中)。

7、XDebug
和除錯客戶端建立連線以後,通過9000埠進行對話。

8、當除錯客戶端向XDebug 傳送執行Php語句的指令後,Php 直譯器執行Php語句,相應的輸出由Apache通過80埠傳送出去到Web Browser。

9、當所有的php程式碼執行完後,XDebug 斷開與除錯客戶端的連線。

10、Apache 斷開與Web Browser的Http連線。

安裝步驟

首先,你先安裝好Apache和Php的執行環境,這個我就不說了,不會安裝的話,看這裡 ,也可以跟我一樣,使用xampp ,還有WinLamp 也推薦一下,反正是開發環境,不是生產環境。

我用的xampp,php模組安裝在c:/xampp/php目錄下(這個因人而異)。

1、安裝NotePad++,注意,不要選擇exe安裝包,選擇
zip
包,使用包中的ansi版本即可(新建一個資料夾notepad++到c:/Program Files,將ansi下面的所有檔案拷貝進去),否則在你安裝DBGP外掛的時候會報錯 (This ANSI plugin is not compatible with your Unicode
Notepad++)。

notepad++.jpg

2、下載NotePad++ 的中文xml檔案 ,將其重新命名為nativeLang.xml,放到notepad++的根目錄下(c:/Program Files/notepad++)。

3、下載DBGP外掛 ,一個Zipped檔案,解壓以後,將dbgpPlugin.dll和Readme.txt檔案複製到Notepad++的plugins目錄下(c:/Program Files/notepad++/plugins)。

4、建立一個php檔案phpinfo.php,列印php的配置資訊。
<?php phpinfo(); ?>

5、 新建一資料夾supplier到apache的htdocs目錄下,執行phpinfo.php,即:http://localhost /supplier/phpinfo.php  檢查你的php版本,我的php版本是5.1.4,確認你的php.ini檔案的位置,以及php擴充套件庫extensions資料夾的路徑。比如:

PhpInfo.JPG 圖中表明:
php.ini檔案在C:/WebServer/Apache2/modules/php/ 資料夾下

擴充套件庫的路徑是C:/WebServer/Apache2/modules/php/ext/

6、到XDebug的官方網站 上下載XDebug For Php的Module,注意要與你的php的版本相匹配,對我來說,就是 PHP 5.1.2 - 5.1.6 ,對應的擴充套件庫為php_xdebug-2.0.0-5.1.6.dll

Xdebug.JPG 7、拷貝php_xdebug-2.0.0-5.1.6.dll 檔案到你的php擴充套件庫資料夾,比如:C:/WebServer/Apache2/modules/php/ext/ (php.ini中的extension_dir 項)

8、用Windows記事本軟體開啟php.ini,增加下面的幾行到php.ini的最後

[xdebug]

zend_extension_ts="C:/WebServer/Apache2/modules/php/ext/php_xdebug-2.0.0-5.1.6.dll"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_mode=req
xdebug.idekey=default
xdebug.remote_log="D:/www/ourcommunity.dev/log/xdebug.log"
xdebug.remote_port=9000
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0

根據你自己的情況設定zend_extension_ts和xdebug.remote_log兩項。

9、重新啟動apache,如果apache啟動失敗,試著將php.ini中關於zend的配置項註釋掉。

比如:

;zend_extension_manager.optimizer_ts = "C:/xampp/php/zendOptimizer/lib/Optimizer"

10、重新執行phpinfo.php檔案,有沒有看到其中的xdebug區域?

PhpInfo_Xdebug.JPG

配置Notepad++


1、開啟Notepad++,進入外掛選單,彈出DbGp下拉選單列表。

DBGp_Plugin.JPG

2、點選"Config...
"選單項,如下圖一樣配置DbGp偵錯程式(Remote Path 和 Local Path是你的php檔案所在的資料夾)

DBGp_Config.JPG

簡單示例


未完待續......