Clientseitige Tools: (Kein Apache, kein PHP)
Eclipse für PHP-Entwickler
Version: Oxygen.2 Release (4.7.2)
Build ID: 20171218-0600
Redhat Enterprise Linux 6.9
Java-Version "1.8.0_101"
Java (TM) SE Laufzeitumgebung (Build 1.8.0_101-b13)
Java HotSpot (TM) 64-Bit-Server-VM (Build 25.101-b13, gemischter Modus)
Remoteserver Wo ist die PHP-Webanwendung:
PHP 5.6.5
Zend Engine v2.6.0 , Copyright (c) 1998-2014 Zend Technologies
mit Zend OPcache v7.0.4-dev, Copyright (c) 1999-2014, von Zend Technologies
mit Xdebug v2.2.7, Copyright (c) 2002-2015, von Derick Rethans
Ich habe frühere Beiträge zu diesem Thema gefunden. Ich habe nicht alles verstanden, was ich versuchen sollte. Ich habe versucht, was ich verstehen konnte, aber hatte kein Glück. Meistens nur mit xdebug_break (); (Wieder kein Glück)
Ich verwende Eclipse und Xdebug, um eine entfernte PHP-Website zu debuggen. Mein Problem ist, dass ich den Debugger nicht an den gesetzten Breakpoints stoppen kann.
Ich mache Remote-PHP-Entwicklung mit Eclipse und einem "Synchronized PHP Project". Nichts außer Eclipse läuft auf meinem Computer.
Ich verwende den Xdebug-Debugger auf dem Remote-Server über Eclipse.
Wenn ich den Debugger benutze geht es in die index.php. Ich kann für eine Weile durchgehen und den Wert von Variablen sehen.
Das Problem ist, dass Xdebug an keinem der gesetzten Haltepunkte anhält.
Ich schließe meine Xdebug-Einstellungen ein
Hinweise, wie Sie das Problem finden und beheben können, sind willkommen.
Xdebug-Einstellungen:
%Vor%Bearbeiten
Ich habe ein Album mit Screenshots erstellt.
Das erste ist eine Fehlermeldung von Eclipse, die passiert, wenn ich die ganze Nacht durchgebe.
Der Rest der Screenshots sind Teile in der Reihenfolge (top- & gt; down) meiner phpinfo Ausgabe.
Es gibt keinen Zend-Abschnitt in meiner phpinfo () -Ausgabe, obwohl es diese vars
gibt %Vor%Nach Ihrer Beschreibung scheint es so:
Ich gehe davon aus, dass das file mapping zwischen lokalem und Server-Code nicht funktioniert, genauer gesagt kann eclipse Ihre Dateien nicht auf die Server-Maps abbilden.
Um dies zu lösen, müssen Sie die Einstellung Pfadzuordnung in den Ausführen / Debug-Einstellungen Ihres Eclipse-Projekts festlegen.
Gehe zu:
Wenn Sie die folgenden Schritte befolgen, sollte es funktionieren
Neueste XDebug-Version
Ihre XDebug-Version stammt aus dem Jahr 2015 gemäß Ссылка . Du solltest also auf die neueste Version upgraden
Einrichten der XDebug-Konfiguration
Richten Sie eine 99-xdebug.ini
in Ihrem /usr/local/etc/php/conf.d/
oder /etc/php/conf.d
oder /etc/php/5.6/cli/conf.d
ein, je nachdem, was auf Ihrem System vorhanden ist
Erstellen Sie einen SSH-Debug-Tunnel
Die Maschine, von der Sie debuggen möchten, Sie müssen einen SSH-Tunnel mit
starten %Vor%Konfigurieren Sie die Remote-Pfadzuordnung in Eclipse
Konfigurieren Sie Eclipse für das Debugging auf Port 9000 und Remote-Pfaden und jetzt sollte es funktionieren
Ich mache Remote-PHP-Entwicklung mit Eclipse und einem "Synchronized PHP Project". Nichts außer Eclipse läuft auf meinem Computer.
Das ist dein Problem. Sie müssen xDebug Verbindung erlauben. xDebug (PHP Web Server) versucht sich zu verbinden aber wahrscheinlich keine Ahnung wo du bist;)
Es gibt zwei Optionen:
Wenn Sie nicht hinter NAT oder im selben Netzwerk wie Ihr Testserver sind, müssen Sie Port 9000 auf Ihrem PC öffnen. Wenn Sie hinter NAT sind, müssen Sie auch den Port 9000 weiterleiten (dies ist der Standardwert, der geändert werden kann). Als nächstes setzen Sie richtig "xdebug.remote_host=your_public_ip"
oder xdebug.remote_connect_back = on
. Wäre auch gut zu akzeptieren Remote-Sitzungen (JIT) von jedem Host (Einstellungen - & gt; PHP - & gt; Debug - & gt; Debuggers - & gt; xDebug), danach können Sie einfach Debugger über Browser-Erweiterung wie xDebug ausführen Helfer.
Konfiguriere Debugger-Startkonfiguration (kleiner Pfeil nach "Debug" -Symbol), um über SSH-Tunnel zu debuggen. In diesem Fall wird xdebug.remote_host=127.0.0.1
korrekt sein. Hinweis: ssh server host muss gleich sein Server-Domäne und SSH-Server müssen auf Port 22 verfügbar sein
Versuchen Sie Dinge zu deaktivieren wie: Opcache, Zend Optimizer und so weiter, alle Erweiterungen, die mit interpretation php code arbeiten. Wenn Sie Glück haben und anfangen zu arbeiten, machen Sie xdebug.so zuletzt, nach allen anderen Modulen, damit Sie sie wieder aktivieren können. Setzen Sie xdebug.so in den Ordner, in dem sich alle anderen php .so befinden, und laden Sie es in die letzte Zeile von php ini, mit vollständiger Pfad zu xdebug.so
Wenn Sie es einfach in die letzte php.ini-Zeile einfügen, können einige inkompatible Module nachher geladen werden, mit config von /etc/php/5.6/apache2/conf.d/*. Also verschiebe einfach die Konfigurationen für eine Weile.
Am Link, im unteren Teil des Posts, deaktiviere ich (, aber nicht durch apt entfernen) opchache module total, und setze es in die php.ini, 1 Zeile vor dem Debugger.
Prüfe die Reihenfolge, wie die Erweiterungen in der phpinfo () -Ausgabe geladen werden, links vom Zend-Logo, wie ich mich erinnere. Der Debugger muss die letzte Zeile in diesem Ausgabe-Block sein. Veröffentlichen Sie phpinfo (); Ausgabe.
Ein anderer Weg, was ich selbst mache: (und ich empfehle es)
Wenn Sie Root-Zugriff auf den Remote-Server haben, versuchen Sie Zend Debugger. Es ist gebündelt mit Zend Studio (nicht kostenlos), aber es gibt separate Downloads von Debugger für einige PHP-Versionen, 5.6 ist die neueste Version, für die es verfügbar ist. Sie veröffentlichen es nicht für php7, aber ich weiß nicht, ob es möglich ist, es aus dem Zend Studio zu kopieren. Wenn es entfernt wurde und nicht heruntergeladen werden kann, kann ich es Ihnen senden.
Zend Debugger sind jetzt nativer für PHP, und Zend Team in Eclipse PDT Entwicklung beteiligt (aber sie realisiert die meisten geschmackvollen Funktionen in kostenpflichtigen Version)
Ich habe eine ähnliche Umgebung wie deine, habe auch Probleme mit XDebug, entschied dann, sie zu entfernen und Zend Debugger zu versuchen. Es gibt meine Frage und Antwort auf askubuntu, über die Installation und die Behebung von Problemen: Ссылка
In wenigen Worten war die Lösung:
Kommentieren Sie es in Config: (CLI-Version scheint Symlink zu sein, auch deaktiviert)
lenya@JabbaDesktop:~$ sudo nano /etc/php/5.6/apache2/conf.d/10-opcache.ini
%Vor%Am Ende von /etc/php/5.6/apache2/php.ini:
Die ersten zwei Zeilen (.so) sollten genau in dieser Reihenfolge sein. Installieren von Debugger "How to" einfach in Google zu finden. Niemand erwähnt oben Problem.
Aktualisierung:
Wenn ich den Debugger benutze geht es in die index.php. Ich kann für eine Weile durchgehen und den Wert von Variablen sehen.
Das heißt, Sie haben bereits eine Verbindung zum Server, Problem ist nicht dort
Tags und Links eclipse php debugging xdebug breakpoints