2015-10-09 4 views
5

Ich schaffte es, xdebug in Kombination mit docker und phpstorm zu bekommen. Für http ruft ... IExdebug in phpstorm und docker

http://192.168.99.100:8081/?XDEBUG_SESSION_START=PHPSTORM

Aber wenn ich versuche, meine phpunit Tests auszuführen, wird verbinden Sie nicht mit PhpStorm

ich die richtige richtige Verzeichniszuordnung hat in PhpStorm und lief auch die folgende auf meiner docker-instanz export XDEBUG_CONFIG="idekey=PHPSTORM"

Ich habe auch versucht auf meinem Docker: PHP_IDE_CONFIG = 'serverName = web.docker' exportieren und nannte die Server-Konfiguration auf phpstorm web.docker. funktioniert immer noch über http, aber nicht CLI

Also kann ich phpstorm und xdebug arbeiten zusammen für die Befehlszeile zu?

hier ist meine Datei: /etc/php5/cli/conf.d/20-xdebug.ini

zend_extension=xdebug.so 
xdebug.remote_enable=1 
xdebug.idekey=PHPSTORM 
xdebug.remote_connect_back=1 
xdebug.remote_host=172.17.42.1 
dxdebug.remote_autostart=1 

Wenn ich die Protokollierung aktivieren und mit der xdebug_remote_host IP-Adresse spielen bekomme ich

W: Remote address not found, connecting to configured address/port: localhost:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:20:39 

Log opened at 2015-10-13 12:22:58 
I: Checking remote connect back address. 
W: Remote address not found, connecting to configured address/port: 172.17.42.1:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:22:58 

Log opened at 2015-10-13 12:23:58 
I: Checking remote connect back address. 
W: Remote address not found, connecting to configured address/port: 192.168.99.100:9000. :-| 
E: Could not connect to client. :-(
Log closed at 2015-10-13 12:23:58 

Solution (edit) Indem Sie auf die Dreh xdebug Protokollierung, sah ich, es war erfolgreich Verbindung zu 192.168.99.1, so löste dies das Problem

xdebug.remote_host=192.168.99.1 
+1

Für die Remote-Debug-IDE verwendet Server/Host-Namen als eindeutige ID, zu entscheiden, welchen Weg Mappings benutze ('PHP | Server'). Beim CLI-Debuggen werden solche Informationen nicht zur Verfügung gestellt (Nirgendwo), also müssen Sie sie manuell bereitstellen (ähnlich wie bei idkey) - 'serverName = ServerNameHere'. Auch - https://devnet.jetbrains.com/message/5534075#5534075 – LazyOne

+0

Ich habe Ihren Hinweis nicht 100% verstanden, aber trotzdem habe ich versucht, mein docker: 'PHP_IDE_CONFIG = 'serverName = web.docker''und benannt die Server-Konfiguration auf phpstorm web.docker. funktioniert immer noch über HTTP, aber nicht über CLI – Confidence

+0

1) Sie können über remote CLI debug/das serverName param [hier] lesen (https://youtrack.jetbrains.com/issue/WI-7906) 2) Was ist Ihr 'PHP | Server sieht so aus (Screenshot bitte) 3) Bevor Sie PHPUnit debuggen, versuchen Sie das Debuggen eines einfachen Skripts (legen Sie es in Ihr Projekt-Root; natürlich sowohl lokal als auch remote) - zumindest garantieren Sie, dass es nicht insgesamt Debug und nicht phpunit funktioniert spezifischer Moment. 4) Was xdebug Log über diesen erfolglosen Versuch sagt (stellen Sie sicher, es ist klar/hat nur diese Anfrage Details) – LazyOne

Antwort

4

Zwei Dinge kommen jetzt meiner Meinung nach:

  1. richtig xdebug.remote_host gesetzt? Für den HTTP Link haben Sie eine 192.168. Adresse angegeben, für den Rückweg ist es eine 172.17. Adresse. Können Sie Ihren Host mit dieser IP-Adresse pingen?

  2. In Ihrer INI-Datei liest es:

    dxdebug.remote_autostart=1 
    

    ist dies nur ein Tippfehler hier, oder ist das tatsächlich in der Config-Datei? Weil es xdebug ohne das "d" davor lesen sollte. Es sollte sein:

    xdebug.remote_autostart=1 
    

    Sie sollten nur die d hinzufügen, wenn Sie die Option hinzufügen, wenn das Skript wie folgt ausführen:

    php -dxdebug.remote_autostart=1 script.php 
    

Wenn das noch nicht hilft, aktivieren Sie bitte die Remote-Protokoll durch Hinzufügen von etwas wie das zu der Konfig:

vielleicht wird das helfen, das Problem zu finden.

+0

1. ja ich kann 'ping 172.17.42.1'. – Confidence

+0

ansonsten überprüfen Sie bitte mein bearbeitetes Thema. – Confidence

+0

Danke, Pampy, dein Tipp zum Ausschalten der Protokollierung zeigte, dass es sich mit dem folgenden IP 'xdebug.remote_host = 192.168.99.1 'verband, also ist es jetzt alles in Ordnung. – Confidence

1

Was für mich gearbeitet ist SSH-Tunnel mit dieser Konfiguration xdebug.remote_connect_back = 0 xdebug.remote_host = 127.0.0.1

See: Xdebug with SSH tunnel on Docker for Mac

+0

kann ich nicht glauben, aber das war das Problem in meinem Fall. Danke Eugen – manuelbcd

Verwandte Themen