本文介紹如何利用Eclipse+XDebug進行PHP的開發工作,以及如何設定為支援本機及遠端除錯的環境。步驟雖然很多,但是重要的地方我都有圖式說明,應該不會很困難。加油囉!

  • 準備所需軟體

  1. 下載 Apache HTTP Server 2.2.11
  2. 下載 PHP 5.2.8
  3. 下載 JRE 6 Update 11 (Eclipse需要JRE才能啟動,如果已經安裝JRE或是JDK則可以省略此步驟)。
  4. 下載 Eclipse PDT 2.0
  5. 下載 Xdebug 2.0.4

 

  • 安裝與設定相關軟體

  1. 首先安裝Apache HTTP Server 2.2.11。
  2. 安裝完後開啟瀏覽器,打入網址 http://127.0.0.1/ ,出現如下畫面表示安裝成功。


    卡關提示:安裝失敗通常是因為Port 80已經被其他程式占用,可以透過指令 netstat -nab|more 加以確認。
  3. 安裝PHP 5.2.8。
    1. 在下列的畫面選擇自動設定Apache HTTP Server。
       
    2. 在下列畫面選擇Apache HTTP Server的安裝路徑。
    3. 為了測試方便,將原先預設不安裝的選項(Extensions及Extras)全選安裝(Entire feature will be installed on local hard drive)。

  4. 重新啟動Apache HTTP Server的服務。
  5. 在Apache HTTP Server的網站目錄(預設為 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs )下建立一個檔案,檔名為phpinfo.php。檔案內容如下:
    <?php
        phpinfo();
    ?>
  6. 使用瀏覽器瀏覽網址 http://127.0.0.1/phpinfo.php ,出現下列畫面表示php安裝成功。
     
  7. 將php_xdebug-2.0.4-5.2.8.dll複製到PHP安裝目錄(預設為 C:\Program Files\PHP )下的ext子目錄。
  8. 修改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
  9. 重新啟動Apache HTTP Server的服務。


    卡關提示: 如果使用Apache Service Monitor,此處請勿選擇使用Restart的功能。必須先選擇Stop後再選擇Start進行重新啟動的動作。
  10. 重新載入網址 http://127.0.0.1/phpinfo.php ,出現如下方的資訊表示安裝成功。

  11. 安裝JRE。如果你已經安裝過JRE或是JDK則可以省略此步驟。

 

  • 安裝與設定Eclipse

  1. 將Eclipse PDT 2.0解開後放置於適合的目錄。
  2. 啟動Eclipse.exe。
  3. 設定預設語系為UTF-8。

     
  4. 設定PHP執行程式路徑。


     
    找出適當的php執行檔與php.ini設定檔,記得php debuger必須設為XDebug。


    卡關提示:請勿使用Search的功能,因為會自動設定為使用Zend Debuger。即使修改為XDebug,在一下步修改Debuger時仍然會有問題。
  5. 設定Debuger,選擇XDebug。需特別注意PHP Executable是不是自動變成了上一個步驟所設定的名稱(如PHP 5.2.8)。
     
  6. 設定完畢。

 

  • 建立測試專案

  1. 建立新的專案 (File->New->Project)。
  2. PHP->PHP Project

  3. Project Name設定為Demo,其他用預設值即可。
  4. 在Apache的網站目錄 (預設為 C:\Program Files\Apache Software Foundation\Apache2.2\htdocs ) 下建立Demo/user這個目錄 (請注意大小寫)。
  5. 在專案內新增一個目錄,此目錄直接連結到上面一個步驟所建立的路徑。



    卡關提示:這樣的設定可以讓每次新增的檔案直接使用遠端執行或除錯的功能。另外一個方法是透過修改Apache設定檔的方式,將虛擬目錄指向我們存放PHP程式碼的地方。
  6. 新增一個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');
        }
    ?>

 

  • 測試執行與除錯功能

  1. demo.php檔案名稱上面點選滑鼠右鍵後選擇Run As -> PHP Script

    應出現下列結果畫面。

  2. demo.php檔案名稱上面點選滑鼠右鍵後選擇Run As -> PHP Web Page。
     
    應自動開啟瀏覽器並顯示下列結果畫面。如果出現詢問對應網址的畫面,因為之前設定的方式已經將兩者做好對應關係,所以直接確認即可。

  3. demo.php的第二行程式碼設定中斷點。

  4. demo.php檔案名稱上面點選滑鼠右鍵後選擇Debug As -> PHP Script
     
    此時會出現一個詢問的視窗,回答Yes後進入Debug的畫面。可以看到程式停在第二行,另外在右上方可以看到目前所有作用中的變數以及其數值。選擇Step Over,程式跳至第五行執行。之後選擇Resume完成程式的執行。
     

    程式進入Debug模式後,可以有五個主要動作可以執行,說明如下:
    Resume:繼續程式的程式,直到下一個中斷點或是程式結束。
    Terminate:直接結束程式,不再執行後面的指令。
    Step Into:追蹤至函式的內部。
    Step Over:不追蹤至函式的內部,進行下一列指令。
    Step Return:當追蹤至函式的內部時,可以透過此指令直接執行完該函式並回到原先呼叫該函式的程式。
  5. 從Debug畫面要回到原先的畫面,必須選擇右上方的標籤。

  6. demo.php檔案名稱上面點選滑鼠右鍵後選擇Debug As -> PHP Web Page。出現如前述的畫面,同樣選擇Step Over後,因為程式現在實際上在Web Server環境下執行,所以會跳到第三行(而非第五行)。之後選擇Resume完成程式的執行。

  7. 恭喜你!你已經建立了PHP的開發與除錯環境(包含遠端除錯),而且全部都是免費的。


文章標籤
全站熱搜
創作者介紹
創作者 cyrilwang 的頭像
cyrilwang

就是資安

cyrilwang 發表在 痞客邦 留言(1) 人氣(10,916)