with para not installed debugger debug configurar con php phpstorm xdebug

para - PhpStorm no recibe conexiones xdebug: registro de eventos de PhpStorm: no se puede evaluar la expresión ''isset($_SERVER['' PHP_IDE_CONFIG ''])''



xdebug ini phpstorm (7)

Configuré todo para que PhpStorm y xdebug funcionen, estoy ejecutando Ubuntu 14.04.

la conexión de vuelta al IDE no está establecida, y recibo esto en el registro de eventos del IDE

No se puede aceptar la conexión externa de Xdebug: No se puede evaluar la expresión ''isset ($ _ SERVER ['' PHP_IDE_CONFIG ''])'' - Osama Salama Hace 13 minutos

Reuniré los valores de configuración que configuré en varios lugares. Como no puedo averiguar dónde está el problema.

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

Información de 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

También validé el env de depuración remota. está todo bien. https://www.jetbrains.com/phpstorm/help/validating-the-configuration-of-a-debugging-engine.html que también salió bien.

El último recurso posible es el archivo de registro 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


La depuración de un archivo llamado « test.php » en IntelliJ IDEA / PhpStorm puede ocasionar la falla de « No se puede evaluar la expresión '' isset($_SERVER[''PHP_IDE_CONFIG'']) '' ».
Use otro nombre para el archivo.


Otra cosa es asegurarse de deshabilitar cualquier servidor de seguridad que tenga y que pueda bloquear las conexiones remotas.


Para cualquier persona que llegue a este problema, hay otra opción de configuración potencial que podría estar perdiendo.

Asegúrese de que ha configurado correctamente su servidor para utilizar la asignación de ruta correcta entre sus archivos locales y remotos.

Por ejemplo, si la raíz de su sitio se monta localmente en /home/foo/www/mysite pero se instala en el servidor en /www/mysite , deberá editar la configuración de su servidor en PHPStorm para usar mapeos de ruta (simplemente ingrese /www/mysite en la casilla junto a /home/foo/www/mysite ).


Recientemente tuve el mismo problema al intentar depurar usando PHPStorm en nginx y php-fpm , en mi caso esto no estaba relacionado con xdebug , nginx o php-fpm config , eran las asignaciones de ruta en phpstorm que faltaban.

Inicialmente, PHPStorm le notificará cuando no pueda asignar un archivo en el servidor a un archivo de origen local; sin embargo, si tiene una asignación a los primeros archivos afectados (normalmente index.php o algo así) pero no puede asignar un archivo utilizado en una etapa posterior (En mi caso, este fue el autocargador en el directorio de proveedores de un proyecto que usa compositor), luego PHPStorm no podrá depurar más y la depuración se detendrá.

Para corregir esto en PHPStorm vaya a settings/Languages & Frameworks/PHP/Servers y asegúrese de que la raíz de su proyecto se asigne correctamente a su directorio de contraparte en el servidor.

PHPStorm debería poder mapear todos los archivos en su proyecto y la depuración debería continuar.

Espero que esto ayude.


También el mismo error si no pudo establecer la variable de entorno en docker-compose.yml para la configuración de su área de trabajo:

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


También tuve este problema e intenté todos los trucos que pude encontrar, pero nada funcionó. Para mí, la depuración funciona la mayor parte del tiempo, pero a veces simplemente deja de funcionar con el mensaje: "No se puede aceptar la conexión externa de Xdebug: No se puede evaluar la expresión ''isset ($ _ SERVER ['' PHP_IDE_CONFIG ''])" "

Así que finalmente me di cuenta de que tenía un error de compilación en mi código (nombre del método mal escrito: PhpStorm no siempre informa de estas cosas, al menos en mi configuración). Tan pronto como corregí el error, la depuración comenzó a funcionar nuevamente. Tal vez esto puede ayudar a alguien que lucha.

Aunque todavía tengo problemas con puntos de interrupción que no son alcanzados, puedo lanzar un "xdebug_break ();" La línea en el código y la depuración se vuelve más confiable. La desventaja de usar xdebug_break en lugar de puntos de interrupción es (aparte del hecho de que es más trabajo que solo agregar un punto de interrupción) las variables locales que no se muestran en el depurador de PhpStorm por alguna razón (solo se muestran los globales). Eso hace que la depuración sea menos conveniente, pero al menos puedo hacer que funcione.

Aparentemente no puedes tener todo :) Desde el mundo de Java, una buena depuración es algo que he podido dar por sentado, pero ahora me he dado cuenta de lo mal estado que he estado :)


Tuve exactamente el mismo error en PhpStorm que el OP.

Esta respuesta a una pregunta diferente me solucionó el problema, pero me gustaría agregar más detalles en mi propia respuesta.

El problema principal fue mal cargado xdebug. Los problemas de mapeo del servidor mencionados en otras respuestas no fueron un problema para mí.

Si carga su página phpinfo() y encuentra la sección xdebug, y ve esto:

XDEBUG NO SE CARGA COMO EXTENSION ZEND

¡Entonces tienes que arreglar eso antes de intentar cualquier otra cosa! Pero a veces esto puede requerir cierto trabajo para rastrearlo, si tiene varios archivos php.ini .

También en su página phpinfo() , busque "php.ini", (debería estar justo en la parte superior) y vea su "Ruta del archivo de configuración (php.ini)" y su "Archivo de configuración cargado". Esos son donde tu xdebug puede estar cargando.

En mi caso, lo cargué correctamente como una extensión Zend en mi archivo de configuración principal en /usr/local/lib/php.ini, así:

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

Pero en mi archivo de configuración cargada en /home/someuser/public_html/php.ini, lo cargué incorrectamente así:

extension=xdebug.so

Después de arreglar eso, la depuración remota con PhpStorm está funcionando de nuevo para mí.

Como nota al margen, el primer error que vi en PhpStorm fue exactamente el mismo que el OP menciona, y esto es lo que parece:

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

(Al principio pensé que, debido a que la extensión no se cargaba correctamente, PhpStorm no podía ejecutar el código PHP en el servidor. Pero ahora creo que PhpStorm solo ejecuta el código php si configuró un intérprete, lo cual no es necesario para la depuración). Para la depuración, PhpStorm solo necesita la conexión xdebug y las asignaciones de ruta correctas.)

Más tarde, encontré el error "El comando no está disponible" en el registro de xdebug en mi servidor, lo que me llevó a la solución.

Por cierto, aquí está lo que tengo en mi php.ini local para 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"