加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx – Xdebug设置cookie XDEBUG_SESSION太多次了

发布时间:2020-12-13 21:37:06 所属栏目:Nginx 来源:网络整理
导读:我使用PhpStorm,xdebug和nginx php-fpm进行远程调试.当我在请求GET参数中传递XDEBUG_SESSION_START = my_ide_key时,Nginx会使用502错误代码(Bad Gateway)进行调用.同时我在IDE中的代码断点工作正常.当我没有传递XDEBUG_SESSION_START参数时,nginx响应格式良

我使用PhpStorm,xdebug和nginx php-fpm进行远程调试.当我在请求GET参数中传递XDEBUG_SESSION_START = my_ide_key时,Nginx会使用502错误代码(Bad Gateway)进行调用.同时我在IDE中的代码断点工作正常.当我没有传递XDEBUG_SESSION_START参数时,nginx响应格式良好的HTML和代码200.但是没有这个参数显然没有调试.

在nginx错误日志中,我看到有关从上游收到的大标头的通知.我尝试在php-fpm和nginx之间转储通信,只有一个不同的东西是一个Set-Cookie头:

Set-Cookie: XDEBUG_SESSION=666; expires=Mon,16-Sep-2013 16:07:28 GMT; path=/

我试着找到这个标题出现在响应中的时间.我发现在我的smarty插件Smarty_Internal_Template析构函数(在我的启动脚本的最后一行代码行之后)如果我调用headers_list(),我看到了大量的Set-Cookie标头(等于析构函数调用和Set-Cookie标头数量).我确信我的代码中没有一个显式头(‘Set-Cookie:XDEBUG_SESSION = …’)调用.我尝试升级和降级xdebug版本但仍然具有相同的行为.在Smarty_Internal_Template放置代码remove_header(‘Set-Cookie’)解决了我的问题,但这是丑陋的黑客!

有关这种奇怪情况的任何想法?

最佳答案
我建议不要在这种情况下使用XDEBUG_SESSION_START.对我来说,看起来XDEBUG_SESSION_START正在触发服务器端的一些代码执行来设置cookie.这就是干扰智能模板代码.

在我使用PHPStorm的所有经验中,我发现打开xdebug的最佳方法是通过bookmarklet,您可以在此处生成:

https://www.jetbrains.com/phpstorm/marklets/

bookmarklet在浏览器中设置cookie.因此,在服务器中不执行任何代码来设置XDEBUG_SESSION和路径变量,这可以减少或消除对智能代码的干扰.

此外,PHPStorm的一个提示是确保PHPStorm启动并运行,并且PHPStorm和php-fpm之间的网络连接正常工作(我认为这是你与nginx结合使用的).

如果php-fpm无法连接到PHPStorm,根据我的经验,代码最终将在服务器上执行,但速度非常慢.

有几次我把这个错误地看作性能问题并浪费了很多时间.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读