Heim  >  Artikel  >  php教程  >  PHP-Debugging-Tool – xdebug

PHP-Debugging-Tool – xdebug

WBOY
WBOYOriginal
2016-08-08 08:49:481234Durchsuche

Früher in Evernote organisiert, jetzt ausgezogen. Unterteilt in lokales Debuggen und Remote-Debugging. Dieser Artikel wurde persönlich getestet und mit Screenshots erstellt. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht zur Diskussion.
(In Bezug auf die Blogs vieler Senioren im Internet habe ich vergessen, den Originallink in meinen Notizen zu speichern. Ich kann den Link hier nicht posten, bitte verzeihen Sie mir)
#Wunde Stelle

Im Allgemeinen werden Funktionen wie echo und var_dump() zum Debuggen von PHP-Projekten verwendet. Wenn das Projekt groß ist, ist dies sehr unpraktisch und ineffizient

#Vorbereitung

Xdebug-Erweiterung installieren;
Offizielle Website https://xdebug.org/download.php
Suchen Sie für Windows einfach die entsprechende Version und laden Sie sie herunter. Geben Sie für Linux das Ausgabeergebnis von php -i auf die Seite https://xdebug.org/wizard.php ein und Sie erfahren, wie es geht. was sehr praktisch ist:
1, ändern Sie die PHP-Konfigurationsdatei und fügen Sie sie am Ende hinzu.
zend_extension = "E:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll";
[xdebug]
xdebug.auto_trace=Ein
xdebug.collect_params=Ein
xdebug.collect_vars = Ein ;Variablen sammeln
xdebug.collect_return = Ein; Rückgabewert sammeln
xdebug.trace_output_dir="e:/wamp/tmp/debuginfo"
xdebug.remote_enable = on
xdebug.remote_handler = dbgp
xdebug.remote_host= localhost ; wird für die Remote-Debugging-Serveradresse
verwendet
xdebug.remote_connect_back = 1; für Remote-Debugging
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.profiler_enable = on
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "E:/wamp/tmp/debuginfo"
xdebug.show_local_vars=0
xdebug.show_Exception_trace = On ;Ausnahmeverfolgung aktivieren
xdebugbug.max_nesting_level = 10000
Überprüfen Sie in phpinfo, ob die xdebug-Erweiterung aktiviert ist. Serverkonfiguration abgeschlossen!
2, PHPStrom-Konfiguration
Der in diesem Abschnitt konfigurierte Port bedeutet, dass die IDE auf Port 9000 auf diesem Computer lauscht

In der Debug-Konfiguration in der oberen rechten Ecke des Projekts
Wählen Sie wie folgt den Typ entsprechend dem Projekt aus, wählen Sie eine Webanwendung für die Website aus und passen Sie das Element „Name“ an
Das Serverelement ist nicht verfügbar. Klicken Sie auf die Schaltfläche unten, um es zu konfigurieren
Starturl (Eingabeadresse) konfigurieren

Die fertige Konfiguration sieht wie folgt aus:

Durch Klicken auf diesen Fehler wird das Debuggen aktiviert und die Starturl wird in dem Standardbrowser geöffnet, den wir im vorherigen Schritt wie folgt konfiguriert haben:

Fügen Sie einen Haltepunkt in den Code ein, aktualisieren Sie die Seite. Das Debugging-Fenster zeigt detaillierte Informationen an und es gibt Betriebsschaltflächen wie folgt:

# Orte optimieren

Die oben genannten Debugging-Schritte sind sehr mühsam. Wenn wir ein Debugging durchführen möchten, ist das Plug-in xdebug hilfreich. Es ist auch ein Fehlersymbol während der Installation wie folgt:

Aktivieren Sie das Plug-in auf der Seite, die debuggt werden muss
Das Telefonsymbol in der IDE aufleuchten lassen und die Überwachung wie folgt starten:

Wenn Sie den Code nach Abschluss der Konfiguration debuggen möchten, können Sie den Punkt direkt unterbrechen. Nachdem der Browser auf die Seite zugegriffen und zum Haltepunkt ausgeführt wurde, überwacht die IDE die Debug-Informationen und zeigt die Informationen an 🎜>

#xdebug Remote-Debugging

Bei einigen Projekten ist es schwierig, eine Umgebung für die lokale Entwicklung einzurichten. Wir müssen remote entwickeln und debuggen. Das bedeutet, den Code auf dem Remote-Entwicklungscomputer lokal zu debuggen.

! 0. Remote-Debugging-Prinzip:

Auf der linken Seite befindet sich der Debugging-Client, z. B. IDE wie IDEA und Eclipse, und auf der rechten Seite befindet sich xdebug. Führen Sie zum Ausführen die folgenden Schritte aus:
1. Die IDE lauscht auf einen Debugging-Port. Der Standardwert ist 9000 und kann von Ihnen selbst konfiguriert werden.
2. Der Benutzer greift hier in der PHP-Umgebung auf den Server zu (dies kann überall erfolgen, im Allgemeinen hilft uns die IDE beim Hinzufügen).
nach der normalen URL.
XDEBUG_SESSION_START=ein Zufallszahlenparameter. Dieser Parameter wird verwendet, um xdebug zu benachrichtigen, sich zum Debuggen aktiv mit dem 9000-Port der IDE zu verbinden. Ohne diesen Parameter stellt xdebug keine aktive Verbindung zur IDE her,
Das Debuggen wird nicht ausgelöst.
3. xdebug stellt aktiv eine Verbindung zum 9000-Port der IDE her. Nach erfolgreicher Verbindung beginnt das Debuggen.
Woher weiß xdebug, dass die IDE Port 9000 überwacht?
xdebug hat zwei Konfigurationen: remote_host und remote_port, die die IP-Adresse bzw. den Überwachungsport der IDE darstellen. Es ist ersichtlich, dass die IDE und xdebug den Überwachungsport aushandeln müssen.
Der Port ist einfach zu handhaben, aber wenn sich meine IP ändert, muss ich dann nicht die xdebug.remote_host-Konfiguration ändern, wenn ich meine IP ändere? Was für ein Aufwand! ! !
Es spielt keine Rolle, ob Sie die IP-Adresse nicht kennen. Setzen Sie einfach xdebug.remote_connect_back auf 1. Das Funktionsprinzip ist in der folgenden Abbildung dargestellt.
Adresse, dann verwenden Sie diese IP-Adresse als Remote_Host, um eine Verbindung herzustellen.

! 1. Installieren Sie xdebug in der Serverumgebung (Methode wie oben)

Die beiden kritischsten Einstellungen sind xdebug.remote_host und xdebug.remote_connect_back,
xdebug.remote_host sollte auf
Ihre lokale Adresse eingestellt sein, mehrere durch Kommas trennen
xdebug.remote_connect_back sollte auf 1 oder eingeschaltet sein
Nachdem dies festgelegt wurde, wird die Einstellung „remote_host“ automatisch ignoriert. Wenn die lokale IP automatisch bezogen wird oder mehrere Personen vorhanden sind, ist es besser, dies zu aktivieren
Die Konfiguration des Servers ist abgeschlossen!

! 2. IDE-Konfiguration
(Das Debuggen von Remote-Code wird normalerweise gleichzeitig mit der Remote-Entwicklung durchgeführt. Für das Remote-Debugging müssen ein lokaler und ein Remote-Kanal geöffnet werden, andernfalls werden keine Debugging-Informationen empfangen.)
> Erstellen Sie einen neuen Remote-PHP-Interpreter

Wenn die Konfiguration korrekt ist, wie unten gezeigt:
> Erstellen Sie ein neues Projekt oder ordnen Sie ein vorhandenes lokales Projekt einem Remote-Projekt zu

> SFTP im Projekt konfigurieren

Dann konfigurieren Sie die Zuordnung

Laden Sie den Fernbedienungscode wie folgt herunter:

Mach einen Screenshot, ich bin so müde
Sehen Sie sich jetzt den Remote-Interpreter an, mit dessen Konfiguration wir begonnen haben. Die vorherige Warnung ist verschwunden, da wir die Zuordnung konfiguriert haben

Debug konfigurieren, die Schritte sind die gleichen wie oben, der Unterschied besteht in der Konfiguration der Pfadzuordnung

Starten Sie das Debuggen. Der Browser greift auf die Remote-Adresse zu. Das Debug-Fenster enthält bereits Debugging-Informationen

Ignorieren Sie meinen 504. Dies hat andere Gründe und hat nichts mit xdebug zu tun, da es sich um ein Testprojekt handelt und ich zu faul bin, mich darum zu kümmern ~ ~
Um Remote-Projekte zu entwickeln, haben wir gerade SFTP konfiguriert. Unsere lokalen Änderungen können durch die folgende Konfiguration automatisch mit der Strg-S-Option synchronisiert werden 🎜>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn