2009-12-14 22 views
6

Ich installierte das neueste XAMPP-Paket, das PHP 5.3.0 enthält. Ich versuche, Xdebug zu aktivieren, aber es wird einfach nicht funktionieren.Kann Xdebug nicht unter Windows 7 arbeiten

Hier ist, was ich in der php.ini geändert mit XAMPP ausgeliefert:

; 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 

Apache startet gut, aber wenn ich http://localhost/ in meinem Browser öffne, bekomme ich folgende Fehlermeldung:

alt text

Wenn ich auf die Schaltfläche Close the program klicke, erscheint die Fehlermeldung in einer Sekunde, als wäre sie in einer Endlosschleife. Ich würde sehr schätzen, any Hilfe, um dies zu arbeiten.

Ich verwende eine Neuinstallation von Windows 7 Ultimate 64-Bit.

EDIT: Aus dem Ergebnis der phpinfo():

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

Antwort

4

Es ist möglich, dass Sie die falsche Version von Xdebug haben. Ich würde einen Blick auf phpinfo() werfen und die Informationen dort mit der different versions of the Xdebug dll vergleichen.

Insbesondere möchten Sie sehen, ob "Thread Safety" aktiviert ist, und Sie müssen wissen, ob Sie eine VC6-kompilierte PHP oder eine VC9 ausführen (wenn Sie Apache verwenden, ist es fast garantiert, dass Sie wollen der VC6).

+0

Thread-Sicherheit aktiviert benötigen würde. PHP entspricht VC6. Ich habe thread-sicheren 5.3 VC6 und weder die 32-Bit-Geschmack noch die 64-Bit-Geschmack geladen. Apache stürzt jedoch nicht mehr ab. – Derek

+0

Das ist hilfreich, ich hatte PHP 5.4, aber habe versucht, 5.3 dll zu installieren, die keinen Fehler gab. – Nap

0

Ja, es ist ein bekanntes Problem - fast unmöglich ist Xdebug mit neuesten Xampp zum Laufen zu bringen und 64-Bit-Vista/Win 7

Es gibt eine bug mit vielen Benutzern beschweren sich über sie berichtet wird.

Die Lösung scheint latest beta version on Xampp zu sein. Es enthält Version 2.0.6 (dev) von xdebug und es funktioniert gut.

Ich habe es auf 64-Bit Vista für ca. 10 Tage getestet und noch kein Problem festgestellt.

0

Wie andere gesagt haben, müssen Sie Ihre xdebug-Version mit Ihrer PHP-Version vergleichen.

Sie haben PHP-Versionsnummer, Threadsicherheit und Compiler bereits abgeglichen.

Wenn Sie es noch nicht herausgefunden haben (das ist ein alter Thread), fehlt Ihnen die INI-Konfiguration. Wenn Sie ein Modul laden, die die Thread-sicher, müssen Sie die folgende Zeile verwenden:

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

Wenn das Modul nicht Thread-sicher ist, dann Sie die INI-Direktive verwenden Sie zu verwenden versucht haben.

Dies gilt nur für zend_extension und nicht reguläre Erweiterungen.

+1

Hinweis: Die Verwendung eines _ts ist NICHT korrekt für Apache 2.2.21, PHP 5.3 unter W7 x64, auch wenn PHP und Apoache TS ist, verwenden Sie den normalen Schlüssel (weisen Sie einfach die richtige dll zu, die, die kein _nts_ drin). Vielleicht war es vor einiger Zeit richtig. –

+0

Sie haben Recht, zweifeln Sie, dass jemand jemals meinen Beitrag an dieser Stelle sehen wird, aber ich aktualisierte es – dcousineau

0

Wenn xdebug nicht mit XAMPP installiert ist, nur mit PHP (32bit, TS, VC6, in C: \ Programme (x86) \ PHP) und Apache (32bit) unter Windows 7 (64bit), in php.ini müssen Sie den vollständigen Pfad zu x86 Ordner von Programmen wie angeben.

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

und NICHT

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

Das war mein Fehler, wenn sie auf x86-Ordner geändert, xdebug begann perfekt zu arbeiten. Hoffe das hilft dir auch. meine Sammlung von taten und Tücken

2

frank-ly, hatte ich auch zwei wirklich schlechte Tage, und ich jetzt nicht, was es schließlich fixiert, so hier:

; 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" 

überprüfen Sie Ihre php.ini, überprüfen phpinfo(), wenn alle Werte (ankommen)

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 

Mehr Pitfalls:

ich habe einen Tippfehler von xdebug.remote gesehen _handle (ohne r) mehrmals im Web. in acht nehmen.

Eine Anmerkung zum idkey: Der obige idkey wurde in phpinfo() als Masterwert angezeigt, ABER wurde mit einem 'lokalen Wert' wie MYMACHINENAME $ überschrieben. ==> Einen globalen env var (in den Computereigenschaften) mit dem Namen DBGP_IDEKEY einstellen und neu starten (oder sich einfach ausloggen) an (auch) netbeans-xdebug hilft! Nochmals: check-in phpInfo() hat es übernommen.

Natürlich netbeans-menu: Optionen-> php tab-> Debugging-Abschnitt zu diesem Port und Session-ID.

Here ist ein Skript, um zu prüfen (per php), ob der Port, mit dem Sie sprechen wollen, geöffnet ist. (weiter unten auch in den Kommentaren, für diejenigen, die faul zu tippen aus dem Bild)

Für Ihren Browser zu verbinden, nicht zu vergessen vergessen (unter Frustration), immer die Debug-Start-get-Argument anhängen:

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

Auf der Port Grenze, helfen this tool könnte auch.

Quadrupelcheck Sie halten VC6 und VC9 kompilierte Versionen von allem auseinander.

Wenn Sie Ihre whatever/path/php.exe myTest.php über die Befehlszeile ausführen (sobald die obigen Einstellungen vorgenommen wurden), werden möglicherweise zusätzliche Fehler angezeigt (dies geschah, während ich mit einer falschen DLL bastelte).

kann ich empfehlen http://www.wampserver.com (aus persönlichen Gründen es passt mir besser als das beliebte XAMPP ...)

3

Haben Sie benutzerdefinierte Installationsassistenten von XDebug versucht, analysiert Ihre PHP-Installation und genauen Schritte, die Sie benötigen zu folgen

Die Windows-Binärdateien funktionieren im Allgemeinen für jedes Mini-Release für die erwähnte PHP-Version, obwohl die Erweiterung zu der Zeit gegen die aktuellste PHP-Version gebaut wurde. Der VCx-Marker gibt an, mit welchem ​​Compiler die Erweiterung erstellt wurde und Non-Thread-sicher, ob ZTS deaktiviert wurde. Diese Qualifikationsmerkmale müssen der von Ihnen verwendeten PHP-Version entsprechen.Wenn Sie nicht wissen, welche Sie benötigen, lesen Sie die Anweisungen zur benutzerdefinierten Installation.

http://xdebug.org/wizard.php

einfach Ihre phpinfo Paste aus in das Textfeld setzen und erhalten Sie genaue xdebug dll erhalten Sie für Ihre PHP ist

+0

Das ist brilliant. Das einzige Problem ist, dass es direkt in PHP installiert wird, also müssen Sie etwas mehr optimieren, um es über die Befehlszeile auszuführen - was einige Tools tun. – Dunhamzzz

+0

Der Zauberer rettete mich, nichts anderes versuchte ich arbeitete. Am Ende ist absoluter vs. relativer Pfad. – Josh

Verwandte Themen