Intereting Posts
Изменение шаблона url для принятия имени пользователя, такого как facebook регулярное выражение для учета периодов после числового символа только в php Проверка правильности JavaScript и PHP В чем разница между заголовком PHP и javascript window.location? Есть ли способ интегрировать OpenCV с PHP? Являются ли PHP MySQLi подготовленными запросами с привязанными параметрами? Передача / Возвращение ссылок на объект + изменение объекта не работает Xdebug Notepad ++ DBPG Плагин локального и глобального контекста не показывает s3 прямая загрузка ограничения размера и типа файла PHP mail () не работает Лучший способ выполнить сценарий экспорта javascript и php csv Как я могу переписать URL-адрес WordPress, чтобы использовать первый подкаталог в качестве строки запроса? Удаление строк из нескольких таблиц сразу Разница между исходными SQL-функциями Laravel Отправка «Запросов приложений» нескольким получателям с использованием Graph API

PhpStorm не получает соединения xdebug: журнал событий PhpStorm: не удается оценить выражение 'isset ($ _ SERVER )'

Я настроил все для работы PhpStorm и xdebug, я запускаю Ubuntu 14.04.

подключение к IDE не установлено, и я получаю это в журнале событий IDE

Не удается принять внешнее соединение Xdebug: невозможно оценить выражение 'isset ($ _ SERVER [' PHP_IDE_CONFIG '])' – Osama Salama 13 минут назад

Я собираю значения конфигурации, которые я настроил в разных местах. Поскольку я не могу узнать, где проблема

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

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 

Я также подтвердил, что удаленная отладка env. все хорошо. https://www.jetbrains.com/phpstorm/help/validating-the-configuration-of-a-debugging-engine.html, который также прошел отлично.

Последним возможным вариантом является файл журнала xdebug:

 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 

Related of "PhpStorm не получает соединения xdebug: журнал событий PhpStorm: не удается оценить выражение 'isset ($ _ SERVER )'"

У меня была такая же ошибка в PhpStorm, как и в OP.

Этот ответ на другой вопрос решил проблему для меня, но я хотел бы добавить более подробно в свой собственный ответ.

Основная проблема была неправильно загружена xdebug. Проблемы с отображением сервера, упомянутые в других ответах, не были для меня проблемой.

Если вы загрузите страницу phpinfo() и найдите раздел xdebug, и вы увидите следующее:

XDEBUG НЕ ЗАГРУЖЕН КАК РАСШИРЕНИЕ ZEND

XDEBUG НЕ ЗАГРУЖЕН КАК РАСШИРЕНИЕ ZEND

Тогда вы должны исправить это, прежде чем попробовать что-нибудь еще! Но иногда это может потребовать некоторой работы для отслеживания, если у вас несколько файлов php.ini .

Также на phpinfo() найдите «php.ini» (он должен быть справа вверху) и посмотрите ваш «Файл конфигурации (php.ini)» и «Загруженный файл конфигурации». Это где ваш xdebug может быть загружен.

введите описание изображения здесь

В моем случае я правильно загрузил его как расширение Zend в свой основной файл конфигурации в /usr/local/lib/php.ini, например:

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

Но в моем загруженном файле конфигурации в /home/someuser/public_html/php.ini я неправильно загрузил его следующим образом:

 extension=xdebug.so 

После исправления этого, удаленная отладка с PhpStorm снова работает для меня.

В качестве примечания, первая ошибка, которую я видел в PhpStorm, была той же самой, что упоминает OP, и вот что она выглядит:

Ошибка переменных сервера phpStorm xdebug

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

(Сначала я думал, что, поскольку расширение не было загружено должным образом, PhpStorm не смог выполнить PHP-код на сервере. Но теперь я думаю, что PhpStorm выполняет только PHP-код, если вы настроили интерпретатор, который не нужен для отладки. Для отладки PhpStorm просто требуется подключение xdebug и правильные сопоставления пути.)

Позже я обнаружил, что ошибка «Команда недоступна» в журнале xdebug на моем сервере, что привело меня к решению.

Здесь, кстати, это то, что у меня есть в моем локальном php.ini для 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 под nginx и php-fpm , в моем случае это не было связано с php-fpm config xdebug , nginx или php-fpm config , это были сопоставления пути в phpstorm , которые отсутствовали.

Изначально PHPStorm уведомляет вас, когда он не может сопоставить файл на сервере с локальным исходным файлом, однако, если он имеет сопоставление с первым ударом файлов (обычно index.php или некоторые из них), но он не может отобразить файл, используемый на более позднем этапе (в моем случае это был автозагрузчик в каталоге поставщика проекта с использованием композитора), тогда PHPStorm больше не сможет отлаживать и отладка остановится.

Чтобы исправить это в PHPStorm перейдите к settings/Languages & Frameworks/PHP/Servers и убедитесь, что корень вашего проекта правильно сопоставлен с его каталогом-партнером на сервере.

PHPStorm сможет отображать все файлы в вашем проекте, и отладка должна продолжаться.

Надеюсь, это поможет.

Для других, кто приходит к этой проблеме, существует еще одна потенциальная конфигурация, которую вы могли бы пропустить.

Убедитесь, что вы правильно настроили сервер для правильного сопоставления пути между локальными и удаленными файлами.

Например, если корень вашего сайта монтируется локально в /home/foo/www/mysite но установлен на сервере в /www/mysite вам нужно будет отредактировать конфигурацию вашего сервера в PHPStorm, чтобы использовать сопоставления пути (просто введите /www/mysite в поле рядом с /home/foo/www/mysite ).

У меня тоже была эта проблема, и я старался каждый трюк, который мог найти, но ничего не получилось. Для меня отладка работает большую часть времени, но иногда она просто перестает работать с сообщением: «Не удается принять внешнее соединение Xdebug: невозможно оценить выражение« isset »($ _ SERVER ['PHP_IDE_CONFIG'])

Поэтому я в конце концов понял, что у меня ошибка компиляции в моем коде (имя метода с ошибкой – PhpStorm не всегда сообщает об этом, по крайней мере, в моей настройке). Как только я исправил ошибку, отладка начала работать снова. Может быть, это может помочь кому-то бороться.

Хотя у меня все еще есть проблемы с точками прерывания, которые не попадают, я могу добавить «xdebug_break ();» строка в коде и отладка становится более надежной. Недостатком использования xdebug_break вместо контрольных точек является (помимо того, что это больше, чем просто добавление точки останова), локальные переменные, которые не отображаются в отладчике PhpStorm по какой-либо причине (показаны только глобальные значения). Это делает отладку менее удобным, но по крайней мере я могу заставить ее работать.

Видимо, у вас не может быть всего 🙂 Исходя из мира Java, хорошая отладка – это то, что я смог принять как должное, но теперь я понял, насколько я испорчен 🙂

Отладка файла с именем « test.php » в IntelliJ IDEA / PhpStorm может привести к isset($_SERVER['PHP_IDE_CONFIG']) « Невозможно оценить выражение» isset($_SERVER['PHP_IDE_CONFIG']) ».
Используйте другое имя для файла.

Другое дело, чтобы вы отключили любой брандмауэр, который у вас есть, и который может блокировать удаленные подключения.