2012-03-11 95 views
3

我一直有一段時間讓Eclipse調試我的CakePHP應用程序。我嘗試閱讀幾個教程(其中沒有一個很棒)。我試過使用Zend和XDebug。Eclipse PDT調試設置(XDebug/Zend)

我不是完全相同,甚至肯定,我應該怎樣一旦它的正確設置以使用這個東西。

我想在我的PHP代碼中設置斷點,右鍵單擊文本編輯器的PHP文件,並選擇「調試PHP Web應用程序」,但它從來沒有擊中破發點。它開闢了日食中的瀏覽器連接到我的正常網址一些GET參數:

debug_host = 192.168.1.2%2C127.0.0.1 & start_debug = 1 & debug_port = 10000 & original_url =的http%3A% 2F%2Flocalhost%2Fparticipants & send_sess_end = 1 & debug_stop = 1個& debug_start_session = 1 & debug_no_cache = 1331422177353 & debug_session_id = 1000

有一兩件事我不知道在我的項目的PHP調試properti es是PHP可執行字段。它被自動設置爲'none',所以我必須創建一個指向'/ usr/bin/php'的條目。也許這不正確?

我去就創建一個PHP文件的簡單應用程序只是有幾個echo語句。我無法讓調試器在那裏達到一個斷點。

這裏是我的phpinfo(): https://sites.google.com/site/kylephpinfo/phpinfo.html?attredirects=0&d=1

我從來沒有過這麼多的麻煩調試器在我的生命中工作..

+0

您是否在服務器上安裝並配置了調試器? – Phil 2012-03-11 03:26:44

回答

6

從你的php.ini的外觀,調試器擴展沒有加載。它通常顯示在第一個框的下方,如with Xdebug v2.1.0, Copyright (c) 2002-2008, by Derick Rethans ...

因此,您需要確保的第一件事是您的服務器的PHP ini設置正確。找到httpd.conf中所指向的php.ini中,並對其進行編輯,包括像這樣:

zend_extension_ts=C:\php\ext\php_xdebug-2.1.0-5.3.0.dll 
xdebug.remote_enable=1 
xdebug.remote_host=127.0.0.1 
xdebug.remote_port=9000 
xdebug.remote_handler="dbgp" 

注:

  • ts手段線程安全的,所以請確保你包得到的調試器也是ts
  • 該設置在Linux/Mac和.so調試器擴展中非常相似。
  • 最簡單的方法是設置一個像XAMPP這樣的服務器,它提供兼容的調試器擴展。

一旦你得到它,php.info顯示xdebug(或Zend Debugger)加載,你已經準備好了。

如果你有你的服務器在本地機器上,最簡單的方法是創建htdocs目錄內的項目。當調試器嘗試解析斷點時,以及PDT嘗試解析要打開的正確文件時,這將防止任何源查找問題。 (有path mapping設置你可以操縱,但這會爲你節省麻煩)。

不要被PHP可執行調試(PHP腳本調試器)弄糊塗。您需要運行遠程調試(即使它在同一臺計算機上)。 PHP腳本僅適用於簡單的PHP腳本,按原樣運行(不在服務器上,並且與CLI一樣)。

希望能幫助你開始! :)

更新:PHP 5.3沒有必要使用zend_extension_ts後,改用zend_extension的上Php.net http://php.net/manual/en/ini.core.php#ini.zend-extension

0

只提到當你做對調試做它打開文件的第二個副本?如果是這樣,它將拉遠程版本進行調試,您將需要在該文件中設置斷點。