本文章涵蓋了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
<==> Apache
+ PHP
+ Xdebug
extension
<==> 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++)。
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檔案所在的檔案夾)
簡單樣本
未完待續......