PhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck ‘isset($_SERVER[‘PHP_IDE_CONFIG’])’

Lesezeit: 10 Minuten

PhpStorm empfangt keine xdebug Verbindungen PhpStorm Ereignisprotokoll Ausdruck isset SERVERPHP IDE CONFIG
Osama Salama

Ich habe alles so konfiguriert, dass PhpStorm und xdebug funktionieren, ich verwende Ubuntu 14.04.

Die Verbindung zurück zur IDE wird nicht hergestellt, und ich erhalte dies im IDE-Ereignisprotokoll

Externe Xdebug-Verbindung kann nicht akzeptiert werden: Ausdruck ‘isset($_SERVER[‘PHP_IDE_CONFIG’])’ – Osama Salama vor 13 Minuten

Ich werde Konfigurationswerte zusammenstellen, die ich an verschiedenen Stellen konfiguriert habe. Da ich nicht herausfinden kann, wo das Problem ist

php.ini

zend_extension = /usr/lib/php5/20121212/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_connect_back = 1
xdebug.remote_autostart = 1
xdebug.remote_log=xxx/xdebug.log
xdebug.IDE_key=PHPSTORM

PHP-Informationen

xdebug

xdebug support  enabled
Version 2.3.1
IDE Key PHPSTORM

Supported protocols Revision
DBGp - Common DeBuGger Protocol $Revision: 1.145 $

Directive   Local Value Master Value

xdebug.auto_trace   Off Off
xdebug.cli_color    0   0
xdebug.collect_assignments  Off Off
xdebug.collect_includes On  On
xdebug.collect_params   0   0
xdebug.collect_return   Off Off
xdebug.collect_vars Off Off
xdebug.coverage_enable  On  On
xdebug.default_enable   On  On
xdebug.dump.COOKIE  no value    no value
xdebug.dump.ENV no value    no value
xdebug.dump.FILES   no value    no value
xdebug.dump.GET no value    no value
xdebug.dump.POST    no value    no value
xdebug.dump.REQUEST no value    no value
xdebug.dump.SERVER  no value    no value
xdebug.dump.SESSION no value    no value
xdebug.dump_globals On  On
xdebug.dump_once    On  On
xdebug.dump_undefined   Off Off
xdebug.extended_info    On  On
xdebug.file_link_format no value    no value
xdebug.force_display_errors Off Off
xdebug.force_error_reporting    0   0
xdebug.halt_level   0   0
xdebug.idekey   no value    no value
xdebug.max_nesting_level    256 256
xdebug.max_stack_frames -1  -1
xdebug.overload_var_dump    On  On
xdebug.profiler_aggregate   Off Off
xdebug.profiler_append  Off Off
xdebug.profiler_enable  Off Off
xdebug.profiler_enable_trigger  Off Off
xdebug.profiler_enable_trigger_value    no value    no value
xdebug.profiler_output_dir  /tmp    /tmp
xdebug.profiler_output_name cachegrind.out.%p   cachegrind.out.%p
xdebug.remote_autostart On  On
xdebug.remote_connect_back  On  On
xdebug.remote_cookie_expire_time    3600    3600
xdebug.remote_enable    On  On
xdebug.remote_handler   dbgp    dbgp
xdebug.remote_host  127.0.0.1   127.0.0.1
xdebug.remote_log   /home/nautilus/Desktop/xdebug.log   /home/nautilus/Desktop/xdebug.log
xdebug.remote_mode  req req
xdebug.remote_port  9000    9000
xdebug.scream   Off Off
xdebug.show_exception_trace Off Off
xdebug.show_local_vars  Off Off
xdebug.show_mem_delta   Off Off
xdebug.trace_enable_trigger Off Off
xdebug.trace_enable_trigger_value   no value    no value
xdebug.trace_format 0   0
xdebug.trace_options    0   0
xdebug.trace_output_dir /tmp    /tmp
xdebug.trace_output_name    trace.%c    trace.%c
xdebug.var_display_max_children 128 128
xdebug.var_display_max_data 512 512
xdebug.var_display_max_depth    3   3

Ich habe auch die Remote-Debugging-Umgebung validiert. es ist alles gut. https://www.jetbrains.com/phpstorm/help/validating-the-configuration-of-a-debugging-engine.html was auch gut rausgekommen ist.

Der letzte mögliche Ausweg ist die xdebug-Protokolldatei:

Log opened at 2015-03-13 14:39:01
I: Checking remote connect back address.
W: Remote address not found, connecting to configured address/port: 127.0.0.1:9000. :-|
I: Connected to client. :-)
-> <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" fileuri="dbgp://stdin" language="PHP" protocol_version="1.0" appid="4474"><engine version="2.3.1"><![CDATA[Xdebug]]></engine><author><![CDATA[Derick Rethans]]></author><url><![CDATA[http://xdebug.org]]></url><copyright><![CDATA[Copyright (c) 2002-2015 by Derick Rethans]]></copyright></init>
<- feature_set -i 1 -n show_hidden -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="1" feature="show_hidden" success="1"></response>
<- feature_set -i 2 -n max_depth -v 1
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="2" feature="max_depth" success="1"></response>
<- feature_set -i 3 -n max_children -v 100
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="feature_set" transaction_id="3" feature="max_children" success="1"></response>
<- status -i 4
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="status" transaction_id="4" status="starting" reason="ok"></response>
<- step_into -i 5
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="step_into" transaction_id="5" status="stopping" reason="ok"></response>
<- eval -i 6 -- aXNzZXQoJF9TRVJWRVJbJ1BIUF9JREVfQ09ORklHJ10p
-> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug" command="eval" transaction_id="6"><error code="5"><message><![CDATA[command is not available]]></message></error></response>
Log closed at 2015-03-13 14:39:01

  • Entsprechend dem Protokoll, das sie empfängt, wird die Verbindung hergestellt, die Kommunikation erfolgt. Ich sehe einfach keine Informationen darüber, mit welcher Datei es arbeitet, und keine Informationen über Haltepunkte.

    – LazyOne

    13. März 2015 um 15:15 Uhr

  • Wie ich sehe, haben Sie weitere Informationen hinzugefügt: Ist es ein CLI-Skript, das Sie zu debuggen versuchen, oder über den Browser? Wenn Browser – welchen Webserver haben Sie dort?

    – LazyOne

    13. März 2015 um 15:43 Uhr

  • über Browser, auf Chrome

    – Osama Salama

    13. März 2015 um 15:50 Uhr

  • Die localhost:63342 URL bedeutet das eingebauter einfacher Webserver wird genutzt. Um einen eigenen Server zu verwenden, müssen Sie ihn erstellen und konfigurieren Bereitstellungseintrag und als Standard markieren.

    – LazyOne

    15. März 2015 um 14:42 Uhr

  • Ich hatte das gleiche Problem, das dadurch verursacht wurde, dass beide PHP-Erweiterungen “Xdebug” und “Zend Debugger” gleichzeitig aktiv waren. Das Deaktivieren von “Zend Debugger” hat es für mich behoben.

    – Mahakala

    12. Oktober 2015 um 20:15 Uhr

PhpStorm empfangt keine xdebug Verbindungen PhpStorm Ereignisprotokoll Ausdruck isset SERVERPHP IDE CONFIG
Buttle Butkus

Ich hatte genau den gleichen Fehler in PhpStorm wie das OP.

Diese Antwort auf eine andere Frage hat das Problem für mich gelöst, aber ich möchte in meiner eigenen Antwort weitere Details hinzufügen.

Das Hauptproblem war falsch geladenes xdebug. Die in anderen Antworten erwähnten Probleme mit der Serverzuordnung waren für mich kein Problem.

Wenn Sie Ihre laden phpinfo() Seite und finden Sie den xdebug-Abschnitt, und Sie sehen Folgendes:

XDEBUG NICHT ALS ZEND-ERWEITERUNG GELADEN

XDEBUG NICHT ALS ZEND-ERWEITERUNG GELADEN

Dann müssen Sie das beheben, bevor Sie etwas anderes versuchen! Aber manchmal kann das Aufspüren etwas Arbeit erfordern, wenn Sie mehrere haben php.ini Dateien.

Auch in deiner phpinfo() Seite, suchen Sie nach “php.ini” (es sollte ganz oben sein) und sehen Sie Ihren “Konfigurationsdatei (php.ini) Pfad” und Ihre “geladene Konfigurationsdatei”. Dort wird Ihr xdebug möglicherweise geladen.

Geben Sie hier die Bildbeschreibung ein

In meinem Fall habe ich es korrekt als Zend-Erweiterung in meine Hauptkonfigurationsdatei in /usr/local/lib/php.ini geladen, etwa so:

zend_extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"

Aber in meiner geladenen Konfigurationsdatei in /home/someuser/public_html/php.ini hatte ich sie falsch geladen:

extension=xdebug.so

Nachdem ich das behoben habe, funktioniert das Remote-Debugging mit PhpStorm wieder für mich.

Nebenbei bemerkt, der erste Fehler, den ich in PhpStorm gesehen habe, war genau derselbe, den das OP erwähnt, und so sieht er aus:

PhpStorm xdebug-Servervariablenfehler

Cannot accept external Xdebug connection
Cannot evaluate expression 'isset($_SERVER['PHP_IDE_CONFIG'])'

(Zuerst dachte ich, dass PhpStorm keinen PHP-Code auf dem Server ausführen konnte, weil die Erweiterung nicht richtig geladen wurde. Aber jetzt denke ich, dass PhpStorm nur dann PHP-Code ausführt, wenn Sie einen Interpreter konfiguriert haben, was zum Debuggen nicht erforderlich ist. Zum Debuggen benötigt PhpStorm lediglich die xdebug-Verbindung und die korrekten Pfadzuordnungen.)

Später fand ich den Fehler „Befehl ist nicht verfügbar“ im xdebug-Protokoll auf meinem Server, was mich zur Lösung führte.

Hier ist übrigens, was ich in meinem Lokal habe php.ini für xdebug:

;extension=xdebug.so <- this is the bad line commented!
zend_extension = "/usr/local/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so"

xdebug.remote_enable=true
xdebug.remote_port="9000"
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/tmp/xdebug-someuser/"
xdebug.profile_enable_trigger=1
xdebug.trace_enable_trigger=1
xdebug.idekey="PHPSTORM"
xdebug.remote_log="var/log/xdebug/xlog"

  • Ich habe das gleiche Problem und musste es als Zend-Erweiterung konfigurieren, aber dieses Problem tritt immer noch auf

    – Emiliano

    6. Juli 2017 um 20:52 Uhr

1647152651 780 PhpStorm empfangt keine xdebug Verbindungen PhpStorm Ereignisprotokoll Ausdruck isset SERVERPHP IDE CONFIG
Andreas Boxer

Ich hatte kürzlich das gleiche Problem beim Debuggen mit PHPStorm unter nginx und php-fpmin meinem Fall hatte dies nichts mit dem zu tun xdebug, nginx oder php-fpm configes waren die Pfadzuordnungen in phpstorm die fehlten.

Anfänglich PHPStorm benachrichtigt Sie, wenn es eine Datei auf dem Server nicht einer lokalen Quelldatei zuordnen kann, aber wenn es eine Zuordnung zu den ersten getroffenen Dateien gibt (normalerweise index.php oder ähnliches ), aber es kann dann keine Datei zuordnen, die später verwendet wird ( in meinem Fall war dies der Autoloader im Herstellerverzeichnis eines Projekts, das Composer verwendet ). PHPStorm kann nicht weiter debuggen und das Debuggen wird beendet.

Um dies zu korrigieren in PHPStorm gehe zu settings/Languages & Frameworks/PHP/Servers und stellen Sie sicher, dass das Stammverzeichnis Ihres Projekts dem entsprechenden Verzeichnis auf dem Server korrekt zugeordnet ist.

PHPStorm sollte dann in der Lage sein, alle Dateien in Ihrem Projekt zuzuordnen, und das Debuggen sollte fortgesetzt werden.

Ich hoffe das hilft.

  • Danke Andrew, das ist alles wahr und wurde zu meiner Standardpraxis bei der Arbeit mit neuen PHP-Projekten, Cheers

    – Osama Salama

    27. Juli 2015 um 13:06 Uhr

Auch derselbe Fehler, wenn Sie es verpasst haben, die Umgebungsvariable festzulegen docker-compose.yml für Ihre Arbeitsplatzkonfiguration:

workspace:
build:
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}

  • Woher soll die Bash-Variable kommen?

    – Shardj

    5. November 2018 um 11:08 Uhr

  • @Shardj aus der hosts-Umgebung (wenn Sie anrufen docker oder docker-compose) oder ein .env Datei.

    – Daniel W.

    2. September 2020 um 16:26 Uhr

  • Ich glaube, ich meinte, woher der Wert für ${PHP_IDE_CONFIG} kommen soll, aber es ist zwei Jahre her, also kann ich mir nicht sicher sein. Derzeit habe ich PHP_IDE_CONFIG=”serverName=docker” in meinem Docker-Container festgelegt, um das CLI-Debugging zu ermöglichen

    – Shardj

    4. September 2020 um 16:00 Uhr

  • @DanielW. docker-compose kann die Werte aus einer .env-Datei verwenden oder Sie exportieren die Variable, bevor Sie docker-compose up aufrufen

    – MADforFUNandHappy

    6. November 2020 um 15:17 Uhr


Für alle anderen, die auf dieses Problem stoßen, gibt es eine weitere potenzielle Konfigurationsoption, die Ihnen möglicherweise fehlt.

Stellen Sie sicher, dass Sie Ihren Server richtig konfiguriert haben, um die richtige Pfadzuordnung zwischen Ihren lokalen und Remote-Dateien zu verwenden.

Wenn Ihr Site-Root beispielsweise lokal unter gemountet ist /home/foo/www/mysite aber auf dem Server installiert /www/mysite dann müssen Sie Ihre Serverkonfiguration in PHPStorm bearbeiten, um Pfadzuordnungen zu verwenden (einfach eingeben /www/mysite in der Kiste daneben /home/foo/www/mysite).

Ich hatte dieses Problem auch und versuchte jeden Trick, den ich finden konnte, aber nichts funktionierte. Bei mir funktioniert das Debuggen die meiste Zeit, aber manchmal funktioniert es einfach nicht mehr mit der Meldung: “Kann externe Xdebug-Verbindung nicht akzeptieren: Kann Ausdruck ‘isset($_SERVER[‘PHP_IDE_CONFIG’])'”

Also wurde mir schließlich klar, dass ich einen Kompilierungsfehler in meinem Code hatte (falsch geschriebener Methodenname – PhpStorm meldet diese Dinge nicht immer, zumindest in meinem Setup). Sobald ich den Fehler behoben hatte, funktionierte das Debugging wieder. Vielleicht kann das jemandem helfen, der Probleme hat.

Obwohl ich immer noch Probleme damit habe, dass Breakpoints nicht erreicht werden, kann ich ein “xdebug_break();” Zeile im Code und das Debuggen wird zuverlässiger. Der Nachteil bei der Verwendung von xdebug_break anstelle von Haltepunkten ist (abgesehen von der Tatsache, dass es mehr Arbeit ist, als nur einen Haltepunkt hinzuzufügen), dass die lokalen Variablen aus irgendeinem Grund nicht im PhpStorm-Debugger angezeigt werden (es werden nur globale angezeigt). Das macht das Debuggen weniger bequem, aber zumindest kann ich es zum Laufen bringen.

Anscheinend kann man nicht alles haben 🙂 Da ich aus der Java-Welt komme, war gutes Debuggen für mich eine Selbstverständlichkeit, aber jetzt habe ich gemerkt, wie verwöhnt ich bin 🙂

  • Ich kann nachvollziehen … ich wurde auch von der C#-Welt verwöhnt ¯_(ツ)_/¯

    – Edwin O.

    30. November 2017 um 1:50 Uhr

1647152652 951 PhpStorm empfangt keine xdebug Verbindungen PhpStorm Ereignisprotokoll Ausdruck isset SERVERPHP IDE CONFIG
Marius.C

Eine andere Sache ist sicherzustellen, dass Sie alle Firewalls deaktivieren, die Sie haben und die Remote-Verbindungen blockieren könnten.

  • Ich kann nachvollziehen … ich wurde auch von der C#-Welt verwöhnt ¯_(ツ)_/¯

    – Edwin O.

    30. November 2017 um 1:50 Uhr

996230cookie-checkPhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck ‘isset($_SERVER[‘PHP_IDE_CONFIG’])’

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

Privacy policy