搜尋此網誌

2009年1月22日 星期四

PHP開發環境建置(Eclipse+XDebug)

本文介紹如何利用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/ ,出現如下畫面表示安裝成功。
    php-setup-001

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

    卡關提示: 如果使用Apache Service Monitor,此處請勿選擇使用Restart的功能。必須先選擇Stop後再選擇Start進行重新啟動的動作。
  10. 重新載入網址 http://127.0.0.1/phpinfo.php ,出現如下方的資訊表示安裝成功。
    php-setup-007
  11. 安裝JRE。如果你已經安裝過JRE或是JDK則可以省略此步驟。

 

  • 安裝與設定Eclipse

  1. 將Eclipse PDT 2.0解開後放置於適合的目錄。
  2. 啟動Eclipse.exe。
  3. 設定預設語系為UTF-8。
    php-setup-020
     
  4. 設定PHP執行程式路徑。
    php-setup-015

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

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

 

  • 建立測試專案

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

    卡關提示:這樣的設定可以讓每次新增的檔案直接使用遠端執行或除錯的功能。另外一個方法是透過修改Apache設定檔的方式,將虛擬目錄指向我們存放PHP程式碼的地方。
  6. 新增一個PHP檔案,檔名為demo.php
    php-setup-022
    其內容為
    <?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
    php-setup-024
    應出現下列結果畫面。
    php-setup-028
  2. demo.php檔案名稱上面點選滑鼠右鍵後選擇Run As -> PHP Web Page。
    php-setup-025 
    應自動開啟瀏覽器並顯示下列結果畫面。如果出現詢問對應網址的畫面,因為之前設定的方式已經將兩者做好對應關係,所以直接確認即可。
    php-setup-029
  3. demo.php的第二行程式碼設定中斷點。
    php-setup-030
  4. demo.php檔案名稱上面點選滑鼠右鍵後選擇Debug As -> PHP Script
    php-setup-026 
    此時會出現一個詢問的視窗,回答Yes後進入Debug的畫面。可以看到程式停在第二行,另外在右上方可以看到目前所有作用中的變數以及其數值。選擇Step Over,程式跳至第五行執行。之後選擇Resume完成程式的執行。
    php-setup-031 

    程式進入Debug模式後,可以有五個主要動作可以執行,說明如下:
    Resume:繼續程式的程式,直到下一個中斷點或是程式結束。
    Terminate:直接結束程式,不再執行後面的指令。
    Step Into:追蹤至函式的內部。
    Step Over:不追蹤至函式的內部,進行下一列指令。
    Step Return:當追蹤至函式的內部時,可以透過此指令直接執行完該函式並回到原先呼叫該函式的程式。
  5. 從Debug畫面要回到原先的畫面,必須選擇右上方的標籤。
    php-setup-032
  6. demo.php檔案名稱上面點選滑鼠右鍵後選擇Debug As -> PHP Web Page。出現如前述的畫面,同樣選擇Step Over後,因為程式現在實際上在Web Server環境下執行,所以會跳到第三行(而非第五行)。之後選擇Resume完成程式的執行。
    php-setup-027
  7. 恭喜你!你已經建立了PHP的開發與除錯環境(包含遠端除錯),而且全部都是免費的。


4 則留言:

About