【问题标题】:PHP Sessions slow down the ttfb by at least 30 secondsPHP 会话将 ttfb 减慢至少 30 秒
【发布时间】:2017-05-19 19:04:27
【问题描述】:

我遇到了以下问题:

我有一个非常简单的脚本,它通过POST 将用户转发到这个登录脚本:

session_start();
$_SESSION["job"] = "admin";
$_SESSION["login"] = true;
$_SESSION["email"] = "email@example.com";
$_SESSION["username"] = "example";
session_write_close(); # I added this because it was recommendet to solve my problem, which it unforunately doesn't do.
header("Location: ../home");


一旦执行此脚本,一切都会被阻止,在其脚本中执行session_start();TTFB 总是在 60s 以上

唯一的解决办法是每次都通过service apache2 restart重新启动apache。

我的Apache2PHP今天安装在绝对全新的服务器上,一切都按照官方说明进行了配置。此外,我在运行脚本的所有其他服务器上都遇到了这个问题。

有什么解决办法?我已经在互联网上搜索了几天......

【问题讨论】:

  • 如果在session_...closedie(); 之前添加会发生什么。这会改变TTFB吗?如果不是这种情况,请在header 之后添加exit;。无论如何都建议这样做,因为可能还会执行不需要的代码。
  • @AMartinNo1 是的!为什么?我编写 PHP 代码大约 5 年了,从来没有过这个
  • “是的!”你指的是什么,我想它会减少 TTFB? dieexit?
  • ttfb 不见了,几乎是 0s - 我用过 die
  • 很高兴知道。好吧,我想你在重定向之后放置了exit / die。似乎在header 语句之后执行了更多代码。不能肯定地说,因为我不知道你的代码。

标签: php apache session


【解决方案1】:

从上面的 cmets 中可以看出,header 语句之后似乎还有更多代码,因为使用 exit 可以解决您的问题。为了让过这篇帖子的人快速看到我添加这个答案的解决方案。

为避免这种不受欢迎的行为,在声明后放置 dieexit 是一个好习惯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多