![PhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck 'isset($_SERVER['PHP_IDE_CONFIG'])' 1 PhpStorm empfangt keine xdebug Verbindungen PhpStorm Ereignisprotokoll Ausdruck isset SERVERPHP IDE CONFIG](https://www.viresist.org/wp-content/uploads/PhpStorm-empfangt-keine-xdebug-Verbindungen-PhpStorm-Ereignisprotokoll-Ausdruck-isset_SERVERPHP_IDE_CONFIG.jpg)
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
![PhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck 'isset($_SERVER['PHP_IDE_CONFIG'])' 2 PhpStorm empfangt keine xdebug Verbindungen PhpStorm Ereignisprotokoll Ausdruck isset SERVERPHP IDE CONFIG](https://www.viresist.org/wp-content/uploads/PhpStorm-empfangt-keine-xdebug-Verbindungen-PhpStorm-Ereignisprotokoll-Ausdruck-isset_SERVERPHP_IDE_CONFIG.png)
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:
![PhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck 'isset($_SERVER['PHP_IDE_CONFIG'])' 3 XDEBUG NICHT ALS ZEND-ERWEITERUNG GELADEN](https://www.viresist.org/wp-content/uploads/1647152650_885_PhpStorm-empfangt-keine-xdebug-Verbindungen-PhpStorm-Ereignisprotokoll-Ausdruck-isset_SERVERPHP_IDE_CONFIG.jpg)
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.
![PhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck 'isset($_SERVER['PHP_IDE_CONFIG'])' 4 Geben Sie hier die Bildbeschreibung ein](https://www.viresist.org/wp-content/uploads/1647152650_232_PhpStorm-empfangt-keine-xdebug-Verbindungen-PhpStorm-Ereignisprotokoll-Ausdruck-isset_SERVERPHP_IDE_CONFIG.jpg)
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 empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck 'isset($_SERVER['PHP_IDE_CONFIG'])' 5 PhpStorm xdebug-Servervariablenfehler](https://www.viresist.org/wp-content/uploads/1647152651_485_PhpStorm-empfangt-keine-xdebug-Verbindungen-PhpStorm-Ereignisprotokoll-Ausdruck-isset_SERVERPHP_IDE_CONFIG.jpg)
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"
![PhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck 'isset($_SERVER['PHP_IDE_CONFIG'])' 6 1647152651 780 PhpStorm empfangt keine xdebug Verbindungen PhpStorm Ereignisprotokoll Ausdruck isset SERVERPHP IDE CONFIG](https://www.viresist.org/wp-content/uploads/1647152651_780_PhpStorm-empfangt-keine-xdebug-Verbindungen-PhpStorm-Ereignisprotokoll-Ausdruck-isset_SERVERPHP_IDE_CONFIG.jpg)
Andreas Boxer
Ich hatte kürzlich das gleiche Problem beim Debuggen mit PHPStorm
unter nginx
und php-fpm
in meinem Fall hatte dies nichts mit dem zu tun xdebug
, nginx
oder php-fpm config
es 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.
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}
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 🙂
![PhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck 'isset($_SERVER['PHP_IDE_CONFIG'])' 7 1647152652 951 PhpStorm empfangt keine xdebug Verbindungen PhpStorm Ereignisprotokoll Ausdruck isset SERVERPHP IDE CONFIG](https://www.viresist.org/wp-content/uploads/1647152652_951_PhpStorm-empfangt-keine-xdebug-Verbindungen-PhpStorm-Ereignisprotokoll-Ausdruck-isset_SERVERPHP_IDE_CONFIG.png)
Marius.C
Eine andere Sache ist sicherzustellen, dass Sie alle Firewalls deaktivieren, die Sie haben und die Remote-Verbindungen blockieren könnten.
9962300cookie-checkPhpStorm empfängt keine xdebug-Verbindungen : PhpStorm-Ereignisprotokoll : Ausdruck ‘isset($_SERVER[‘PHP_IDE_CONFIG’])’yes
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