2009-12-14 195 views
6

我安裝了包含PHP 5.3.0的最新XAMPP程序包。我試圖啓用Xdebug,但它不會工作。無法讓Xdebug在Windows 7上工作

這是我在隨XAMPP在php.ini改變:

; uncommented 
zend_extension = "X:\xampp\php\ext\php_xdebug.dll" 

; added the following lines: 
xdebug.remote_enable=true 
xdebug.remote_host=localhost 
xdebug.remote_port=9000 
xdebug.remote_handler=dbgp 

阿帕奇啓動正常,但是當我在瀏覽器中打開http://localhost/,我得到以下錯誤:

alt text

如果我點擊Close the program按鈕,錯誤消息將在一秒鐘內重新出現,就好像它處於無限循環一樣。我非常感謝任何幫助這個工作。

我正在運行全新安裝的Windows 7旗艦版64位。

編輯: 從()的phpinfo的結果:

Zend Extension Build API220090626,TS,VC6 
PHP Extension Build  API20090626,TS,VC6 
Debug Build    no 
Thread Safety   enabled 

回答

4

這是可能的,你有Xdebug的版本錯誤。我會看看phpinfo(),並將其中的信息與different versions of the Xdebug dll進行比較。

具體而言,您想查看是否啓用了「線程安全性」,並且您需要知道您是否正在運行VC6編譯的PHP或VC9(如果您使用的是Apache,則幾乎可以保證您想要VC6)。

+0

線程安全已啓用。 PHP符合VC6。我抓住了線程安全的5.3 VC6,並沒有加載32位風格和64位風格。但是,Apache不會再崩潰了。 – Derek 2009-12-14 23:24:55

+0

這是有幫助的,我有PHP 5.4,但試圖安裝5.3 DLL雖然沒有給出錯誤。 – Nap 2013-05-23 04:21:57

0

是的,有一個已知的問題 - 幾乎是不可能得到的Xdebug與最新的XAMPP和64位Vista/Win的7

工作有許多用戶抱怨它報道了bug

解決方案似乎是latest beta version on Xampp。它包括版本2.0.6(開發)的xdebug,它工作得很好。

我在64位Vista上測試了大約10天,但沒有遇到任何問題。

0

像其他人一樣,你需要匹配你的xdebug版本和你的php版本。

您已經匹配了PHP版本號,線程安全性和編譯器。

如果您還沒有弄明白(這是舊線程),你缺少的是INI配置。如果要裝載這是線程安全的模塊,您需要使用以下行:

zend_extension="C:\Path\To\The\Extension.dll" 

如果模塊線程安全的,那你就用你已經嘗試使用INI指令。

這隻適用於zend_extension的而不是常規擴展。

+1

注意:即使PHP和Apoache是​​TS,使用_ts對於Apache 2.2.21,PHP 5.3在W7 x64下也是不正確的,即使使用正常密鑰(只要將正確的dll賦給它,那個不承載_nts_在裏面)。也許這是正確的。 – 2011-10-12 12:40:38

+0

你是對的,懷疑有人會在這一刻看到我的帖子,但我更新了它 – dcousineau 2011-10-13 03:57:11

0

當xdebug不是與XAMPP一起安裝的時候,只需要PHP(32位,TS,VC6,在C:\ Program Files(x86)\ PHP)和Apache(32位)在Windows 7(64位),在php。ini您需要指定x86 Program Files文件夾的完整路徑。

zend_extension="C:\Program Files (x86)\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll" 

zend_extension="C:\Program Files\PHP\ext\php_xdebug-2.1.1-5.3-vc6.dll" 

這是我的失誤,當改爲x86文件夾,Xdebug的開始正常工作。希望這對你也有幫助。

2

坦率-LY,我也有2非常糟糕的日子,我現在該怎麼辦終於修好了沒有, 所以這裏是我做的和陷阱的集合:

; this is the thread safe version, 
; the absence of _nts_ in the dll name 'shows' this 
; do not use _ts, your library won't get registered and won't show in phpInfo() 
zend_extension = "D:/wamp/bin/php/php5.3.8/zend_ext/php_xdebug-2.1.2-5.3-vc9-x86_64.dll" 

檢查你的php.ini,檢查phpinfo()函數,如果所有的值(到達)

xdebug.remote_enable = on 
xdebug.remote_handler=dbgp 
xdebug.profiler_enable = off 
xdebug.profiler_enable_trigger = off 
; if you have multiple virtual hosts (like 'local.fooclient') 
; maybe using the IP is safer (for any same-machine-debugging) 
xdebug.remote_host=127.0.0.1 
; maybe a -much- lower port helped, 84 was free. use netstat to figure out. 
xdebug.remote_port=84 
; idekey! also see note below 
xdebug.idekey=netbeans-xdebug 

更多陷阱:

我見過xdebug.remote的錯字(無r)在網上多次。謹防。

關於idekey的說明:上述idekey確實在phpinfo()中顯示爲主值,但是使用像MYMACHINENAME $這樣的「本地值」覆蓋了 。 ==>設置名爲DBGP_IDEKEY的全局env var(在計算機屬性中)並重新啓動(或者只是註銷)到(也)netbeans-xdebug幫助!再次:重新檢查phpInfo()是否生效。

當然調整netbeans的菜單:選項 - > PHP標籤 - >調試節到此端口和會話ID。

Here是一個腳本,以檢查(由PHP意味着)如果你打算跟該端口是開放的。 (在下面的評論中也有進一步的說明,對於那些懶惰的人也可以從圖像中刪除)

爲了讓瀏覽器連接起來,不要開始忘記(在沮喪中)始終附加調試開始的get參數:

http://localhost/myTest.php?XDEBUG_SESSION_START=netbeans-xdebug 

口邊防,也this tool可能的幫助。

Quadruplecheck你正在保持VC6和VC9編譯版本的一切。

從命令行運行您的whatever/path/php.exe myTest.php(一旦完成上述設置)可能還會顯示其他錯誤(它的確如此,而我正在修補一個不正確的dll)。

我可以推薦http://www.wampserver.com (因個人原因,它適合我比流行的XAMPP包好...)

3

你試過了XDebug的自定義安裝嚮導,它分析你的PHP安裝,並提供您需要的具體步驟按照

的Windows可執行文件通常爲所提到的PHP版本,每一個版本的迷你工作,雖然擴展針對當時最新的PHP版本內置。 VCx標記表明擴展是由哪個編譯器構建的,以及ZTS是否被禁用,非線程安全。這些限定符需要匹配您使用的PHP版本。如果您不知道您需要哪一個,請參閱自定義安裝說明。

http://xdebug.org/wizard.php

只需粘貼你的phpinfo出來放在文本框中,你會得到確切的XDebug DLL,你需要爲你的PHP

+0

這真是太棒了。唯一的問題是它將它直接安裝到PHP中,所以您需要稍微調整一下才能從命令行運行 - 這是一些工具的作用。 – Dunhamzzz 2012-09-06 13:38:37

+0

巫師救了我,沒有別的我嘗試過工作。最終成爲絕對vs.相對路徑。 – Josh 2015-01-17 22:21:15

相關問題