Xdebug funktioniert nicht mehr, wo suche ich nach Fehlern?

Lesezeit: 4 Minuten

Benutzer-Avatar
valk

Ich habe Xdebug installiert und alles war in Ordnung, bis es plötzlich nicht mehr funktionierte. phpinfo() gibt eine schöne XDebug-Ausgabe mit allen Variablen.

php -m | grep deb

gibt auch zweimal XDebug (für Zend und PHP), sieht also wieder ganz gut aus. Meine php.ini hat diese Zeilen:

zend_extension=/usr/lib/php5/20090626/xdebug.so
;extension=xdebug.so
xdebug.remote_host=localhost
xdebug.remote_enable=on
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_connect_back=1

Und doch, wenn Sie diesen Code mit XDebug (aus Netbeans-Dokumenten) ausführen, bleibt er einfach hängen. Also funktioniert keine IDE mit XDebug.

<?php
$address="127.0.0.1";
$port = 9001;
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Unable to bind');
socket_listen($sock);
$client = socket_accept($sock);
echo "connection established: $client";
socket_close($client);
socket_close($sock);

Außerdem bin ich gemäß der XDebug-Installation zweimal durch die Schritte gegangen. Was ist an meiner Konfig falsch? Vielen Dank.

  • Selbst nach dem Hinzufügen von xdebug.remote_log=”/tmp/xdebug.log” und dem Neustart von Apache2 und dem Ausführen einer App ist das Protokoll leer …

    – valk

    2. April 2012 um 5:50 Uhr

Benutzer-Avatar
valk

Bleiben am Ende nur noch zwei Lösungen übrig – das Ubuntu-Betriebssystem neu zu installieren oder eine neue VM speziell für xdebug zu installieren, entscheide ich mich für die zweite. Komischerweise funktionierte alles nach dem “RTM” (f=freaking). Eine Sache, die ich nicht herausfinden konnte, ist, wie man die Protokolle für XDebug liest, um zu verstehen, wo das eigentliche Problem liegt.

AKTUALISIEREN

Nach einiger Mühe löschte ich jede einzelne Zeile, die sich auf xdebug bezog, aus jeder php.ini, die ich hatte. Und diese Zeilen nach /etc/php5/conf.d/xdebug.ini verschoben. Apache neu gestartet und dann PHPStorm, und es funktioniert. PS in der Mitte, ich habe versucht, xdebug mit pecl von github und der Standard-Ubuntu-Version zu installieren. Ich denke, die, die ich kompiliert habe, funktioniert derzeit. Und … das Protokoll wird ebenfalls aktualisiert.

;xdebug configuration
zend_extension = /usr/lib/php5/20090626/xdebug.so
xdebug.remote_host = 127.0.0.1
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.remote_autostart=1
xdebug.idekey=PHPSTORM
xdebug.remote_log="/tmp/xdebug.log"

Versuchen Sie auf Ihrem Server diesen Befehl:

$ netstat -anp | grep CLOSE_WAIT

Alle :9000-Einträge werden Ihnen XDebug-Probleme bereiten; Erwägen kill -9 <pid>.

  • Für diejenigen, die mit Linux nicht ganz vertraut sind, war die PID auf Ubuntu für mich mit diesem Befehl die letzte Spalte: 3131/Apache2 PID = 3131

    – espradley

    21. Juli 2017 um 16:31 Uhr

Ich hatte dieses Problem auch unter Ubuntu, nachdem ich PHP aktualisiert hatte. Für mich hat das Aktivieren von HTML-Fehlern in php.ini dazu geführt, dass xdebug mit Netbeans wieder funktioniert …

sudo vi /etc/php5/apache2/php.ini
display_errors = On
html_errors = On

Und starten Sie Apache neu:

sudo /etc/init.d/apache2 restart

http://ubuntuforums.org/showpost.php?p=9592364&postcount=14

Ich habe meine überprüft

netstat -anp

Ausgabe und fand heraus, dass es eine Anzahl offener Sockets (im XDebug-Portbereich) durch den Master-Prozess auf meinem Remote-Rechner gab [running xDebug].

Das Beenden des ‘Master’-Prozesses löste das Problem für mich.

Schien für mich wie eine Port-Overrun-Situation. Dachte, die Informationen könnten für einige nützlich sein.

check port ist nicht besetzt, check netbeans ist so konfiguriert, dass es auf diesen port lauscht (ich sehe, du hast 9001, 9000 ist normalerweise standardmäßig) auch wenn ich mit eclipse debugge, muss ich die debug-sitzung ab und zu “beenden und neu starten”. funktioniert nicht mehr, habe nie verstanden warum, ich vermute eine Art abgelaufene Debug-Sitzung

Benutzer-Avatar
Darius.V

Überprüfen Sie, ob Sie Breakpoints in die richtige Datei setzen. Suchen Sie die erste Datei, in die das Skript eintritt (vorderer Controller). Auf Symfony kann es zum Beispiel mehr als einen geben.

Benutzer-Avatar
GetoX

In meinem Fall habe ich nach dem Update von xdebug auf Version 3 einfach die php.ini-Konfiguration eingefügt/eingestellt

error_reporting=E_ALL
display_startup_errors=1
display_errors=1

und dann befehlen php -v alle Warnungen und Fehler anzeigen. In meinem Fall:

Xdebug: [Config] The setting 'xdebug.remote_enable' has been renamed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-xdebug.remote_enable (See: https://xdebug.org/docs/errors#CFG-C-CHANGED)

1217350cookie-checkXdebug funktioniert nicht mehr, wo suche ich nach Fehlern?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy