在NotePad++中安裝DBGP debugger除錯PHP程式
阿新 • • 發佈:2019-02-19
本文章涵蓋了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
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安裝包,選擇
Notepad++)。
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資料夾的路徑。比如:
圖中表明:
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
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區域?
配置Notepad++
1、開啟Notepad++,進入外掛選單,彈出DbGp下拉選單列表。
2、點選"Config... "選單項,如下圖一樣配置DbGp偵錯程式(Remote Path 和 Local Path是你的php檔案所在的資料夾)
簡單示例
未完待續......