使用NetBeans + Xdebug調試PHP程式的方法

來源:互聯網
上載者:User

按照網路上的資料配置好調試環境後實際試用了發現功能較為簡陋,單檔案調試還可,如果是跨檔案調試項目就不那麼舒服了,試用過程中因為DBGP外掛程式也存在許多缺陷,煩惱不斷,經常性地stack overflow,很是遺憾。後來想想Np++只是Editor,不要對它強求過多,外掛程式的版本也比較低,存在許多BUG也是可以理解的,等它慢慢完善再說吧,開源社區的力量可是很強大的,^^。
昨晚在壇裡某位同志的博文裡再次見到了NetBeans這個熟悉的字眼(之前選開發環境的時候因為NB非常強大,功能設定很人性化,介面非常友好,又有非常強的自動完成功能,都差不多就要定它了,可是因為當時不懂有xdebug,所以沒搞懂怎麼調試,就繼續用著EP Ctrl+B“調試”程式了),就用加上“xdebug”google了一下發現NB調試功能就是通過其實現的,而且功能齊全,評價不錯,哈哈,大大的驚喜,因為太晚了怕影響舍友休息,就決定次日來搞掂它。
……
  今天外出溜達回來後,把開發環境折騰了一番,現將配置過程整理如下:

[我的環境]

OS:Vista Business SP1 en_US
PHP:5.2.8
Apache:2.2.11
NetBeans:6.5.1 PHP
http://www.netbeans.org/downloads/start.html?platform=windows〈=zh_CN&option=php&version=6.5.1
Xdebug:2.0.4-5.2.8
http://www.xdebug.org/files/php_xdebug-2.0.4-5.2.8.dll

[安裝Xdebug]

1、將php_xdebug-2.0.4-5.2.8.dll解壓至php安裝目錄下的ext檔案夾。
本機為:D:\Wamp\php\ext
2、修改php.ini,在末位添加如下內容:
[php]
zend_extension_ts=" D:\Wamp\php\ext\php_xdebug-2.0.2-5.2.5.dll"
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
[/php]
註:zend_extension_ts 的值以你實際安裝位置為準;xdebug 會與zend_optimizer相衝突,請注釋/刪除掉php.ini內的與zend_optimizer相關的語句;xdebug.remote_port的值要與NB的工具->選項->調試器連接埠 所填寫內容一致,預設為9000
3、在Vista環境下,通過apache模組載入php的方式在載入xdebug後執行php指令碼apache會崩潰,如果要正常使用xdebug調試PHP程式的話,需要將PHP的運行方式更改為CGI,請在httpd.conf添加如下內容:
[php]
#LoadModule php5_module D:/Wamp/php/php5apache2_2.dll
#PHPIniDir "D:/Wamp/php/"
ScriptAlias /php/ "D:/Wamp/php/"
<Directory D:/Wamp/php/>
Order allow,deny
Allow from all
</Directory>

#AddType application/x-httpd-php .php
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"

註:注釋掉的是以模組方式載入PHP的配置語句
[/php]

[開始調試]

1、建立並開啟項目
2、開啟需要調試的檔案並設定斷點。
3、執行頂部菜單內的 調試->調試”xxx.php”,在彈出的對話方塊中選擇“伺服器端PHP”。點擊確定後,NB會自動使用你的預設瀏覽器開啟你要調試的檔案,如:http://localhost/Comsenz/UCenter_Home/index.php?XDEBUG_SESSION_START=netbeans-xdebug。此時,你會發現瀏覽器的請求一直未返回,而且NB右下角顯示“netbeans-xdebug正在運行”,你就可以按F7正常偵錯工具了。
若未設定斷點,執行調試的時候程式將自動在當前檔案的第一行暫停執行。若不希望自動暫停執行,請取消勾選工具->選項->PHP->在第一行停止。
4、表單處理調試可以執行 調試->調試項目,後續操作類似,只不過如果你執行到你設定斷點的指令碼時,NB會自動中斷在斷點處,等待你調試哈!
5、詳細的請參照NB官方調試指南http://www.netbeans.org/kb/docs/php/debugging_zh_CN.html

[參考網站]
http://www.netbeans.org/downloads/index.html (NetBeans下載)
http://www.xdebug.org/download.php (Xdebug下載)

原文:http://www.zvv.cn/blog/show-101-1.html

[ 本帖最後由 zwws 於 2009-3-29 02:55 編輯 ]


1、開啟項目,設定斷點.jpg


2、執行調試.jpg


3、調試方式.jpg


4、單步調試.jpg


5、項目調試(跨頁).jpg

小Z寫東西總是那麼詳細。頂上!
PS: 樓主的頭像很雷1.“xdebug 會與zend_optimizer相衝突,請注釋/刪除掉php.ini內的與zend_optimizer相關的語句”
不知道哪些語句是與zend_optimizer相關的語句 樓主能否詳細的給出
2.我的是win作業系統
PHP 5.2.9
Apache 2.11
MYSQL 5.1


不知道是否和樓主配置的方式是一樣的
3.我也很喜歡NetBeans的開發模式 但是xdebug總是調試不好 按照網上說的做了還多次
仍舊不行 前期最終選擇了放棄 看了樓主發表的具體配置方法 很是感激 不過還有上面
兩個疑問 謹希望能夠得到樓主的最快最詳細的回複答案 非常感謝sejie10011 (2009-3-31 11:07:11)樓主寫得那麼詳細。頂上!zwws (2009-3-31 12:22:52)1、呵呵,解決問題的方法很重要的,如果你知道zend_optimizer是如何安裝的,那不就解決問題了嗎?
我用“zend_optimizer php.ini”在google搜到了這篇文章
http://ideacm.com.cn/read.php?12
所以你只要根據文章在本地的php.ini裡找到文章內提到的相關語句注釋掉不就好了嘛,其實就是"zend_Optimizer."打頭的語句。當然,前提是你安裝了zend_optimizer.

2、xdebug 2.0.4 支援 PHP 5.2.9的。

zwws (2009-3-31 12:24:14)豆瓣淘滴。niohe (2009-3-31 22:43:54)多謝LZ指教!!iminto (2009-4-02 19:58:07)支援樓主大碗茶 (2009-4-03 17:02:32)zend optimizer和 xdebug是可以共存的qgymje (2009-8-27 11:56:53)我想問一下我的這個情況
http://bbs.phpchina.com/thread-149075-1-1.html
調試後步入步出不能用zhenjiangdeni (2010-6-23 14:42:03)樓主,我都按照你說的配置了,為什麼,ide又下角老是顯示 正在等待串連(netbeans-xdebug).沒有辦法調試luzhou (2010-6-25 19:29:22)不錯啊!luzhou (2010-6-25 19:31:05)http://zh-cn.netbeans.org/kb/docs/php/debugging.htmlgguoyu (2010-6-25 20:58:24) 回複 12# zhenjiangdeni
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.