2016-08-05 51 views
0

Ich bin mehr neu mit dieser Art von Dingen, ich versuche, Xdebug zu debuggen, ein Laravel-Projekt, das ich in meinem Ubuntu 16.04 entwickeln, habe ich erhaben installiert Text mit dem Paket-Steuerung und dem xdebug Client, die ich von installiert apt-get die Paketexdebug in einem Laravel-Projekt in Ubuntu 16.04 mit Sublimetext 3

php (7.0) php-xdebug php-all-dev php-fpm 

das Laravel Projekt bereits mit dem COMAND arbeitet

php artisan serve 

ich das erhabene Text 3 Projekt mit dem Code gespeichert

{ 
    "folders": 
    [ 
     { 
      "follow_symlinks": true, 
      "path": "." 
     } 
    ], 
    "settings": { 
     "xdebug": { 
      "url": "http://localhost/", 
     } 
    } 
} 

mein /etc/php/7.0/fpm/conf.d/20-xdebug.ini ist:

zend_extension=xdebug.so 
xdebug.remote_enable = 1 
xdebug.remote_handler=dbgp 
xdebug.remote_host=127.0.0.1 
xdebug.remote_port = 8000 
xdebug.remote_log="/var/log/xdebug/xdebug.log" 

Ich weiß nicht, ob ich die „php Handwerker“ zu debuggen verwenden müssen oder einfach nur mit dem xdebug plugin in sublime text, nichts apear zu arbeiten

irgendwelche ideen?

Dank für alles

Antwort

0

Hier ist meine Config für xdebug:

zend_extension=/usr/lib/php/modules/xdebug.so 
xdebug.remote_enable=on 
xdebug.remote_host=127.0.0.1 
xdebug.remote_port=9000 
xdebug.idekey="netbeans-xdebug" 
xdebug.remote_autostart=1 

Notiere die remote_autostart, die meine Debuggen alle Arbeiten richtig gemacht.

Ich benutze nicht sublime, aber diese Konfiguration funktionierte korrekt in Atom, PhpStorm, VSCode und Netbeans, und ich nehme an, es funktioniert virtuell für alle kompatiblen Debugger-Clients. Stellen Sie sicher, dass die Felder port, host und idekey in sublime identisch sind und Ihre Konfigurationsdatei, das ist alles.

Die Sache ist, Sie müssen wissen, wie xdebug funktioniert. Dann können Sie es überall leicht einrichten.

xdebug funktioniert aber Verbindung zu den remote_host und remote_port Sie in seiner Konfiguration angeben. Das bedeutet, wenn ein PHP-Skript ausgeführt wird, versucht xdebug zuerst, wenn es geladen wird, sich mit dieser Adresse zu verbinden. Wenn ein kompatibler Debugger auf der anderen Seite abhört, wird eine Verbindung hergestellt, und der Debugger kann sein Debugging durchführen. Beachten Sie, dass xdebug, wie in Socket-Terminologie, ein Client zu Ihrem Server (IDE, Debugger, ...) ist. Daher muss Ihre ID zuerst zuhören, bevor das PHP-Skript ausgeführt wird. Finden Sie in Sublime so etwas wie hören für Verbindungen.

Zum Debuggen, wenn das Problem mit Ihrer IDE oder xdebug selbst ist, können Sie debugclient verwenden, ein Tool, das als Server für xdebug fungiert. Führen Sie einfach debugclient und führen Sie ein PHP-Skript, mit xdebug geladen (das scheint, Sie haben es). Wenn es zeigt, dass eine Verbindung besteht, hat Sublime ein Konfigurationsproblem. Wenn nicht, überprüfen Sie die Konfiguration von xdebug erneut und stellen Sie sicher, dass alles in Ordnung ist.

Ich habe Systeme gesehen, in denen debugclient nicht standardmäßig installiert ist. Sie können auch mit nc -l 9000 oder einem anderen Port testen, um es zu testen.