gpt4 book ai didi

在 Apache 生产环境中忽略 PHP session 设置?

转载 作者:行者123 更新时间:2023-12-04 19:43:01 25 4
gpt4 key购买 nike

我在为我们的项目设置 PHP session 时遇到问题,想寻求帮助。目标是通过增加 session 生命周期来延长购物车数据的有效性(存储在 session 中)。

问题是,无论我做什么,无论设置如何, session 文件都会在几个小时后被删除。

我在虚拟主机定义中设置它,如下所示:

<VirtualHost *:80>
...
php_value memory_limit 128M
php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value session.cookie_lifetime 2592000
php_value session.gc_maxlifetime 2592000
php_value session.save_path "/data/hosting/myproject/sessions"
...
</VirtualHost>

甚至将 session 存储移动到专用目录以避免任何可能的系统维护清除 session ,但没有成功。

在开发环境(Wamp 3.0.6 64b)上,这工作得很好正如预期的那样,在生产服务器上并没有那么多。此外,当我尝试使用 PHP ini_get() 函数 ( http://php.net/manual/en/function.ini-get.php ) 仔细检查设置值时,开发和生产环境都会返回正确的所需值。

该项目存储在我们使用这些的 VPS 上:
  • PHP 5.5.38
  • Apache/2.2.15 (Unix)
  • CentOS Linux 6.0 版(最终版)

  • 一个值得注意的观察——不仅仅是这个项目,同样的设置在应用于另一个项目时也会失败。

    提前感谢任何可以帮助我解决这个问题的提示或想法,我们将不胜感激。

    免责声明:请不要评论解决方案本身,我很清楚它不是最佳的。这是一个老项目,重写购物车数据存储方法根本不可行。

    最佳答案

    出色地..
    1) 验证代码中没有与 gc 相关的 ini_set。因为这会覆盖您在 apache.xml 中放置的任何设置。
    2)验证没有 .htaccess 做与 1 相同的事情,因为它显然也会破坏设置。
    3)设置除数/概率(可能有帮助)
    4) 也强制执行 set_cookie 参数,它可能不是服务器搞砸了,而是客户端获得了默认 session cookie 生命周期,因此 30 分钟后会杀死 cookie。

    关于在 Apache 生产环境中忽略 PHP session 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47260915/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com