本文介紹如何利用Eclipse+XDebug進行PHP的開發工作,以及如何設定為支援本機及遠端除錯的環境。步驟雖然很多,但是重要的地方我都有圖式說明,應該不會很困難。加油囉!
-
準備所需軟體
- 下載 Apache HTTP Server 2.2.11。
- 下載 PHP 5.2.8。
- 下載 JRE 6 Update 11 (Eclipse需要JRE才能啟動,如果已經安裝JRE或是JDK則可以省略此步驟)。
- 下載 Eclipse PDT 2.0。
- 下載 Xdebug 2.0.4。
-
安裝與設定相關軟體
- 首先安裝Apache HTTP Server 2.2.11。
- 安裝完後開啟瀏覽器,打入網址 http://127.0.0.1/ ,出現如下畫面表示安裝成功。
卡關提示:安裝失敗通常是因為Port 80已經被其他程式占用,可以透過指令 netstat -nab|more 加以確認。 - 安裝PHP 5.2.8。
- 重新啟動Apache HTTP Server的服務。
- 在Apache HTTP Server的網站目錄(預設為 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs )下建立一個檔案,檔名為phpinfo.php。檔案內容如下:
<?php
phpinfo();
?> - 使用瀏覽器瀏覽網址 http://127.0.0.1/phpinfo.php ,出現下列畫面表示php安裝成功。
- 將php_xdebug-2.0.4-5.2.8.dll複製到PHP安裝目錄(預設為 C:\Program Files\PHP )下的ext子目錄。
- 修改PHP安裝路徑下的php.ini,在最後面加上下列設定。
zend_extension_ts = ext/php_xdebug-2.0.4-5.2.8.dll
xdebug.remote_enable = On
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp - 重新啟動Apache HTTP Server的服務。
卡關提示: 如果使用Apache Service Monitor,此處請勿選擇使用Restart的功能。必須先選擇Stop後再選擇Start進行重新啟動的動作。 - 重新載入網址 http://127.0.0.1/phpinfo.php ,出現如下方的資訊表示安裝成功。
- 安裝JRE。如果你已經安裝過JRE或是JDK則可以省略此步驟。
-
安裝與設定Eclipse
- 將Eclipse PDT 2.0解開後放置於適合的目錄。
- 啟動Eclipse.exe。
- 設定預設語系為UTF-8。
- 設定PHP執行程式路徑。
找出適當的php執行檔與php.ini設定檔,記得php debuger必須設為XDebug。
卡關提示:請勿使用Search的功能,因為會自動設定為使用Zend Debuger。即使修改為XDebug,在一下步修改Debuger時仍然會有問題。 - 設定Debuger,選擇XDebug。需特別注意PHP Executable是不是自動變成了上一個步驟所設定的名稱(如PHP 5.2.8)。
- 設定完畢。
-
建立測試專案
- 建立新的專案 (File->New->Project)。
- PHP->PHP Project。
- Project Name設定為Demo,其他用預設值即可。
- 在Apache的網站目錄 (預設為 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs ) 下建立Demo/user這個目錄 (請注意大小寫)。
- 在專案內新增一個目錄,此目錄直接連結到上面一個步驟所建立的路徑。
卡關提示:這樣的設定可以讓每次新增的檔案直接使用遠端執行或除錯的功能。另外一個方法是透過修改Apache設定檔的方式,將虛擬目錄指向我們存放PHP程式碼的地方。 - 新增一個PHP檔案,檔名為demo.php。
其內容為
<?php
if (isset($_SERVER) && isset($_SERVER['REMOTE_ADDR'])) {
printf("REMOTE_IP is %s", $_SERVER['REMOTE_ADDR']);
} else {
print('You are in php script mode');
}
?>
-
測試執行與除錯功能
- 在demo.php檔案名稱上面點選滑鼠右鍵後選擇Run As -> PHP Script。
應出現下列結果畫面。
- 在demo.php檔案名稱上面點選滑鼠右鍵後選擇Run As -> PHP Web Page。
應自動開啟瀏覽器並顯示下列結果畫面。如果出現詢問對應網址的畫面,因為之前設定的方式已經將兩者做好對應關係,所以直接確認即可。
- 在demo.php的第二行程式碼設定中斷點。
- 在demo.php檔案名稱上面點選滑鼠右鍵後選擇Debug As -> PHP Script。
此時會出現一個詢問的視窗,回答Yes後進入Debug的畫面。可以看到程式停在第二行,另外在右上方可以看到目前所有作用中的變數以及其數值。選擇Step Over,程式跳至第五行執行。之後選擇Resume完成程式的執行。
程式進入Debug模式後,可以有五個主要動作可以執行,說明如下:
Resume:繼續程式的程式,直到下一個中斷點或是程式結束。
Terminate:直接結束程式,不再執行後面的指令。
Step Into:追蹤至函式的內部。
Step Over:不追蹤至函式的內部,進行下一列指令。
Step Return:當追蹤至函式的內部時,可以透過此指令直接執行完該函式並回到原先呼叫該函式的程式。 - 從Debug畫面要回到原先的畫面,必須選擇右上方的標籤。
- 在demo.php檔案名稱上面點選滑鼠右鍵後選擇Debug As -> PHP Web Page。出現如前述的畫面,同樣選擇Step Over後,因為程式現在實際上在Web Server環境下執行,所以會跳到第三行(而非第五行)。之後選擇Resume完成程式的執行。
-
恭喜你!你已經建立了PHP的開發與除錯環境(包含遠端除錯),而且全部都是免費的。