我正在努力让xdebug工作,而且我现在无法告诉我是否错过了xdebug或xdebug本身的一些基本组件。我已经访问了很多教程和指南,并且没有运气。
所以我按照以下方式设置我的xdebug配置:
zend_extension=xdebug.so
xdebug.remote_autostart = 1
xdebug.remote_log = /tmp/xdebug.log
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
#xdebug.remote_host = 192.168.56.1
#xdebug.remote_port = 9000
#xdebug.idekey = xdebug-atom
xdebug.var_display_max_depth = 8
我正在尝试使用PhpStorm和VSCode。在PhpStorm中,当我使用他们的"零配置调试"时,它开始监听,但直接点击页面或使用POSTMAN没有任何影响。我偶尔会在日志中收到以下错误:
I: Checking remote connect back address.
I: Checking header 'HTTP_X_FORWARDED_FOR'.
I: Checking header 'REMOTE_ADDR'.
I: Remote address found, connecting to 192.168.56.1:9000.
E: Time-out connecting to client. :-(
当我在PhpStorm中设置服务器时,它似乎激活并保持连接,但同样,断点没有中断。在VSCode中,它似乎也可以激活和监听,但没有,我在VSCode尝试的日志中看不到任何内容。
当我在POSTMAN中设置XDEBUG_SESSION
cookie时,我注意到它会中断,但是从很多教程中,它似乎表明remote_connect_back不需要这样做?如您所见,我已将idekey注释掉。我错了,你确实需要cookie吗?
我怎样才能找出错误的原因?我已经浏览了xdebug文档,与Xdebug相关的PhpStorm文档,而且我不知道有多少博客文章。
答案 0 :(得分:2)
I: Remote address found, connecting to 192.168.56.1:9000. E: Time-out connecting to client. :-(
这通常表示没有侦听端口9000,或者防止Xdebug与IDE建立连接的方式存在防火墙。
当我在POSTMAN中设置XDEBUG_SESSION cookie时,我注意到了它 休息,但是从这么多的教程中,它似乎表明这不是 remote_connect_back需要什么?如你所见,我有idekey 评论说。我错了,你确实需要cookie吗?
" idekey"如果您只是自己调试自己的应用程序,则无关紧要。它只与DBGp代理有关(这不在本问题的范围内)。只有在CLI上,Xdebug才会关注idekey 设置到export XDEBUG_CONFIG="idekey=yourname"
。但是,由于您未在此处进行CLI调试,因此其值无关紧要。
xdebug.remote_connect_back
仅处理选择要连接的IP,它对Xdebug是否会尝试连接没有任何影响。
要进行连接,需要XDEBUG_SESSION
Cookie(或XDEBUG_SESSION_START
GET参数),或,您可以设置xdebug.remote_autostart,在这种情况下Xdebug无论cookie如何,都会尝试在每个请求上建立与IDE的连接。
请注意,此问题的标题具有误导性。 IDE将不与Xdebug建立连接,Xdebug与IDE建立连接。