extension configurar chrome xdebug phpstorm

configurar - xdebug phpstorm ubuntu



habilitar la depuraciĆ³n remota de xdebug hace que el servidor apache sea muy lento (8)

A veces, si tiene otros servicios trabajando en el puerto 9000, Xdebug no podrá conectarse a su servidor en el puerto 9000 y lo hará lento porque se agotará el tiempo de espera en cada solicitud.

Intente cambiar el puerto predeterminado (9000) donde xDebug está escuchando. Usé 9090 para el ejemplo, pero puede usar cualquier puerto libre que tenga:

xdebug.remote_port=9090

Entonces recuerde cambiar el puerto donde xDebug está escuchando en su IDE, estoy usando Visual Studio Code:

{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9090, "log": true }, { "name": "Launch currently open script", "type": "php", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "port": 9090 } ] }

Si habilito xdebug estableciendo xdebug.remote_enable=1 , el servidor apache se vuelve muy lento; una vez que cambie la configuración a 0 , es normal.

Encontré una misma pregunta aquí: XDebug realmente lento , pero la respuesta no es útil. No habilité el perfil

xdebug.profiler_enable=0 xdebug.auto_trace = 0 xdebug.trace_output_dir = /tmp/xdebug xdebug.trace_output_name = trace.%c

Comprobé que no hay nada en la carpeta / tmp / xdebug.

Cuando la depuración remota de xdebug está habilitada y habilito la escucha de depuración en PHPStorm, demora un poco en detenerse en el punto de interrupción, pero no tan lento como deshabilitar la escucha de depuración phpstorm.

Mi entorno es: php + apache + xdebug en centos VM local, mysql db y PHPStorm están en el escritorio de Windows para el desarrollo. MySQL no es lento.

Aprecio por ayuda.


Además, si desea dejar xdebug.remote_autostart = 1 habilitado todo el tiempo, en su configuración de Phpstorm intente aumentar el máximo de secciones simultáneas. Esto debería reducir los bloqueos y bloqueos, pero aún así tendrá un impacto en el rendimiento según mi experiencia.


Como referencia adicional ... en caso de que alguien tenga el mismo problema / problema similar ... (60 segundos de tiempo de espera)

La primera verificación doble xdebug.remote_autostart está deshabilitado para evitar la conexión automática.
Como @LazyOne señaló @LazyOne , y @Tomáš Fejfar explica @Tomáš Fejfar .

xdebug.remote_autostart
Tipo : booleano, Valor por defecto: 0
Normalmente, debe usar una variable HTTP GET / POST específica para iniciar la depuración remota ( consulte Depuración remota ). Cuando esta configuración se establece en 1, Xdebug siempre intentará iniciar una sesión de depuración remota e intentará conectarse a un cliente , incluso si la variable GET / POST / COOKIE no estaba presente.

Con esto, recupero mi velocidad normal cuando la cookie de depuración no estaba presente ...
Pero! ... Todavía recibo una respuesta muy lenta (60 segundos de tiempo de espera) del servidor cuando la cookie se activó manualmente .

Entonces, después de leer la documentación de Xdebug y verificar mi configuración,
Descubrí que tenía habilitado xdebug.remote_connect_back

xdebug.remote_connect_back
Tipo : booleano, Valor predeterminado: 0, introducido en Xdebug> 2.1
Si está habilitado, la configuración de xdebug.remote_host se ignora y Xdebug intentará conectarse al cliente que realizó la solicitud HTTP . Verifica la variable $ _SERVER [''REMOTE_ADDR''] para averiguar qué dirección IP usar. Tenga en cuenta que no hay ningún filtro disponible y que cualquiera que pueda conectarse al servidor web podrá iniciar una sesión de depuración, incluso si su dirección no coincide con xdebug.remote_host.

Así que todas las llamadas al servidor intentaban ser depuradas, lo que hacía que el servidor fuera muy lento y también inseguro.

Deshabilite esta opción y verifiqué que tenía xdebug.remote_host bien definido apuntando a mi máquina, obtuve una respuesta aceptable ~ 1sec. y solo cuando la cookie esté habilitada .

Así que en resumen, mi archivo de configuración termina así:

zend_extension = "/absolute/path/to/your/xdebug-extension.so" xdebug.remote_enable = 1 xdebug.remote_autostart = 0 xdebug.remote_connect_back = 0 xdebug.remote_host = "192.168.1.2" xdebug.remote_port = 9000 xdebug.remote_handler = "dbgp" xdebug.remote_mode = req xdebug.remote_log = "/tmp/xdebug.log"

Nota: Hice estos cambios en el etc/php5/conf.d/xdebug.ini y no en php.ini

Editar:
Como @ Riimu y @ jdunk señalan gracias a ambos , es posible que desee configurar también:
* ver comentarios para detalles

xdebug.remote_cookie_expire_time = 0 // or xdebug.remote_cookie_expire_time = -9999


En mi caso esto fue causado por tener

xdebug.remote_autostart = 1

establecido en php.ini . Eso hace que xdebug intente conectarse a un depurador remoto en cada solicitud . Tuve algunos estilos de PHP manejados, auto_preppend_file y otros archivos PHP en la solicitud y para cada uno de ellos esperó aproximadamente 2 segundos, lo que sumó hasta sth. como 15 segundos más o menos. Ajuste

xdebug.remote_autostart = 0

Resolvió el problema completamente. xdebug se conecta solo cuando la cookie de depuración está presente . Tenga en cuenta que debe eliminar la cookie / param de depuración si no está en la sesión de depuración para que esta solución funcione .

Aquí está mi configuración que utilizo para configurar xdebug .


En mi caso, el bajo rendimiento fue causado por tener más de 200 puntos de interrupción establecidos en PHPStorm que fueron evaluados en cada solicitud por xdebug.

La eliminación de esos puntos de interrupción en PHPStorm aumentó el rendimiento de 60 segundos a 6 segundos por solicitud.


Es probable que haya algunos tiempos de espera de redes que ocurren aquí. La mejor manera de descubrir qué está mal es intentar depurar un script de línea de comandos. Si eso sigue teniendo el mismo problema, usa strace para ver en qué está colgado:

export XDEBUG_CONFIG="idekey=yourname" strace -tt -o /tmp/strace.log php full/path/to/script.php

Luego, eche un vistazo a /tmp/strace.log y vea dónde ocurre la ralentización.


Estoy usando PHPStorm 7.1 y el servidor Apache instalado por Xampp 1.8.2, todo eso bajo Windows 8.1. Experimenté una interoperabilidad lenta entre Chrome y PHPStorm en modo de depuración cuando se establecieron puntos de interrupción.

La velocidad se mejoró notablemente al instalar la última versión de la DLL de XDebug (use el asistente de XDebug para determinar qué versión descargar), copie la DLL en su directorio php / ext y cambie la php.ini para que se cargue la nueva DLL de XDebug. Stopstart Apache y ver la diferencia.

Pude verificar que se produjo una ganancia de rendimiento similar al depurar una aplicación web con Eclipse (Juno con PDT) mediante el navegador web interno de Eclipse.


Experimentado también bajo rendimiento con XDebug (carga de Captcha en 6 segundos en lugar de milisegundos) Los comentarios en esta página me ayudaron a identificar la causa.

Se apagó el perfilador y el tiempo de carga se dividió por 3. Todavía lento, pero mejor ya.

xdebug.profiler_enable = 0