[英]How to debug PHP with netbeans and Xdebug
在Smashing雜志的IDE評論中評價如此之高之后,我最近嘗試使用Netbeans 6.5。 http://www.smashingmagazine.com/2009/02/11/the-big-php-ides-test-why-use-oneand-which-to-choose/
我從Notepad ++切換的主要原因是我希望能夠調試我的代碼並通過它進行設置。
我已經按照有關如何從供應商http://xdebug.org/和netbeans網站安裝xdebug的說明進行操作。 http://www.netbeans.org/kb/docs/php/debugging.html#gettingReady但無濟於事。
它是如何完成的,有沒有其他人在netbeans中進行調試?
(我的設置是:Windows XP,Wamp server 2.0,PHP 5,Netbeans 6.5.1)
在php.ini中添加這一行非常重要:
xdebug.idekey="netbeans-xdebug"
注意:在NetBeans中,轉到“設置”並查看xdebug內容的設置位置。 查找該會話ID。 就我而言,它是netbeans-xdebug。
嗯,對我來說,netbeans是php調試開箱即用的第一個ide。
xdebug是否顯示在phpinfo中? 如果是,它應該使用默認設置。 唯一需要的是:
xdebug.remote_enable=on
因此,如果未啟用此功能,請將其放入php.ini文件中,重啟apache,調試應該可行。
如果沒有,您將不得不為我提供更多信息來幫助您。
SY
我后來發現WAMP,當用Mod_rewrite和cURL安裝時無法應付Xdebug。
這是一個已知錯誤並且每次都會崩潰。
不幸的是,我也在使用這兩個庫。
xdebug給出了curl或mod_rewrite的問題並不是一個已知的問題。 我所知道的唯一問題是Vista上的Xdebug。
你可以在這里看到: http : //ruilima.com/2010/11/ambiente_de_desenvolvimento_php_netbeans_xdebug/是葡萄牙語,但有一個預配置的虛擬機,Ubuntu 10.10,netbeans,php,mysql,xdebug,隨時可以使用。 看一看
如果您在Windows下使用xampp:
您只需要打開php.ini文件並更改這兩行
;xdebug.profiler_enable = 0
;zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
成
xdebug.profiler_enable = 1
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
(注意:如果你的xampp版本是舊的,你必須從http://xdebug.org/download.php下載它,下載32位甚至你的操作系統是64位。例如你下載的xdebug的名字是php_xdebug -2.2.1 -5.4-vc9.dll 。首先將php_xdebug-2.2.1-5.4-vc9.dll復制到目錄C:\\ xampp \\ php \\ ext \\,然后你的第二行將是zend_extension = "C:\\xampp\\php\\ext\\php_xdebug-2.2.1-5.4-vc9.dll
)
在那之后停止apache並重新開始,就是這樣。
我發現在Netbeans中你需要將項目中的webroot路徑設置為app / webroot。 如果你這樣做,調試工作完美無瑕。
在我的情況下,這是一個在我的機器(Windows 7)上運行的進程,它使用的端口9000已經叫做aeagent.exe
我將我的php.ini設置更改為“xdebug.remote_port = 9001”,在netbeans中進行了相應的更改,然后重新啟動了Apache。 現在它有效。
感謝SysInternals TCPView工具。
轉到http://wiki.netbeans.org/HowToConfigureXDebug 。 您應該遵循一系列步驟,這可能對您有所幫助。
但很可能你只需要一個新版本的xdebug-binary。 轉到http://xdebug.org/wizard.php找出你需要的二進制文件,你的問題可能會得到解決。
當在Ubuntu下運行netbeans時,我也面臨着這個問題,似乎我已經嘗試了在互聯網上找到的所有解決方案,但都是徒勞的。
唯一最終幫助的是使用SUDO命令運行netbeans! 看起來普通用戶沒有權限偵聽端口9000(或任何其他)。
sudo netbeans &
...瞧,我可以再次調試! 也許它會為你節省一兩天
現在它的工作是浪費3個小時使xdebug在Windows8上工作,wamp 2.2替換[xdebug]下面的原始行以下
zend_extension = "c:/wamp/bin/php/php5.3.13/zend_ext/php_xdebug-2.2.0-5.3-vc9.dll"
;make sure path of your own php_xdebug, dll version may vary.
[xdebug]
xdebug.remote_enable = on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
;recheck your port number in netbeans [Tools=>options=>php=>debugging there it is: debugging port]
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"
現在點擊任務欄中的wamp圖標並“重啟所有服務”
嗯..現在最后一步>> START NETBEANS作為管理員windows8的Holly靈魂我討厭你:<
通過以下文檔,使用NetBeans進行遠程調試。 http://stuporglue.org/setting-up-xdebug-with-netbeans-on-windows-with-a-remote-apache-server/
我偶爾會遇到NetBeans和XDebug的問題,這些問題一直存在於與正在調試的代碼無關的Watch語句中。
在這種情況下,調試器失敗並出現Socket異常。
如果您發現這導致您的問題,請刪除所有手表。 一般來說,雖然我發現XDebug非常方便!
但我確實意識到這可能與你在這里遇到的問題無關,但值得注意。
在同一站點PHP Netbeans上找到了相同問題的解決方案:xdebug在每個include()或require()上停止
錯誤的是,遺忘了
[xdebug]
作為php-ini中的節頭。 當然,在另一個部分開始之前“停放”你的東西(例如[Date]或[iconv]),否則你會意外地把它們放在錯誤的部分。 (在php.ini的評論djungle中,這很容易發生。)
如果您遇到Apache在運行調試器時決定崩潰的問題(這就是我所擁有的並且非常煩人)。 我很確定我重新安裝了xampp並重新設置了xdebug。 我認為問題是在php.ini中設置了很奇怪的zend-debugger而我沒有修改正確的php.ini。
最后重新安裝並重置后,我得到了正常的工作。
我現在運行了一個開發版的Netbeans,它已經與xdebug進行了網絡調試,所以我們將它從我們的開發服務器上運行它並且它有效。
祝你好運,關於如何使用net beans設置xdebug,沒有特別好的文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.