【问题标题】:How to fix: "Failed to start the session because headers have already been sent by "php://input" at line 1."如何解决:“无法启动会话,因为标头已由第 1 行的“php://input”发送。”
【发布时间】:2020-11-20 09:25:19
【问题描述】:

我真的不知道为什么这个错误突然出现在我的 Symfony 应用程序版本 4.4 中,没有任何更改突然开始触发错误:

Uncaught PHP Exception RuntimeException: "Failed to start the session because headers have already been sent by "php://input" at line 1." at /vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php line 152 {"exception":"[object] (RuntimeException(code: 0): Failed to start the session because headers have already been sent by \"php://input\" at line 1. at /vendor/symfony/http-foundation/Session/Storage/NativeSessionStorage.php:152)"}

问题,当我尝试进入正在使用会话的页面时,出现此错误。

我的环境:

  • Docker PHP 7.4
  • Docker Apache 2

什么时候出现?

当我尝试在登录页面或正在使用会话的其他页面上连接自己时。

我尝试了什么?

  • 检查我的 php 文件中是否有一些空格,这个错误甚至没有更改就开始了,在该错误出现之前的最后一次更改是提前 10 天并且与会话无关,代码实际上是两行 array_merge两个数组。
  • 重新启动我的 PHP 容器:当我重新启动它时,它会一直工作,直到它在某个时候中断,而不会给我提供比上述错误更多的日志。
  • 更改了使用另一个 save_path 进行会话的配置,如下所述:https://symfony.com/doc/current/session.html,知道它不相关我想尝试看看该位置是否会改变任何东西以及它是否与内存相关。
  • 破坏了我的 php 容器和 apache,但错误仍然出现在一段时间后,并通过使任何试图访问它的人无法访问来关闭整个平台。

这里的非永久解决方案是让我在收到该错误时一直重新启动我的 php 容器,但正如您所见,这不是永久解决方案。

在我的开发环境中,我无法重现它。

如果有人对此有解决方案,请告诉我,我这几天一直在寻找并试图获得答案,甚至在 Symfony 松弛支持中提出问题,但没有任何答案可以帮助我。

非常感谢您的帮助。

【问题讨论】:

  • 也许值得尝试回滚到10天前的版本,看看是否仍然出现错误,这样你就可以解决它与那个有关
  • 嗨@johnSmith,我实际上完全按照你说的做了,但不幸的是,错误仍在发生并且执行相同的模式。
  • 也许你应该仔细尝试composer update
  • 在寻找和搜索回复后,我终于从 StackOverflow 的一篇帖子中得到了回复,我在这里给出答案,以防它对任何人有所帮助。我做了composer update,不幸的是它没有解决。该问题是由恶意软件引起的。通过在我的容器上安装 htop,我可以看到名为:/tmp/kinsing/tmp/kdevtmpfsi 的恶意软件占用了我所有的 CPU。这是因为我的本地服务器为我的 PHP docker 容器打开了 9000 端口,我不得不杀死并删除它们,当然以更好的方式保护我的容器。 @johnSmith 以防万一。

标签: php symfony session session-cookies symfony4


【解决方案1】:

在寻找和搜索回复后,我终于从 StackOverflow 的一篇帖子中得到了一个回复,我在这里给出答案,以防它对任何人有所帮助。

我做了一个作曲家更新,不幸的是,它没有解决,但至少更新了我的依赖项。

问题是由恶意软件引起的。通过在我的容器上安装htop,我可以看到名为:

的恶意软件
  • /tmp/kinsing
  • /tmp/kdevtmpfsi

占用了我所有的 CPU。

这是因为我的本地服务器为我的 PHP docker 容器打开了 9000 端口,然后我必须杀死、删除它们,当然还要以更好的方式保护我的容器.

您应该检查什么?

  • 安装 htop
  • 运行 htop
  • 检查是否有任何可疑活动
  • 通过避免使用开放端口来清洁和保护您的容器

【讨论】:

    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    相关资源
    最近更新 更多