【问题标题】:Laravel 3 APC session lifetime is ignoredLaravel 3 APC 会话生命周期被忽略
【发布时间】:2013-10-27 10:25:42
【问题描述】:

我有一个 Laravel 3 项目,在 plesk 11.5 CentOS 4(专用)上运行。它曾经在 IIS 服务器上,但我不得不将它迁移到 plesk,因为我工作的公司正在转储 IIS 服务器。一切似乎都运行顺利,直到我从我的应用程序中注销,起初我得到一个 WSOD(死机白屏),然后我启用了 php 错误报告,这是显示的错误:

致命错误:无法覆盖最终方法 Laravel\Database\Eloquent\Model::sync()

这是一个非常奇怪的错误,因为我的任何类中都没有名为 Sync 的方法,不用说,当项目在 IIS 上运行时没有这样的错误。

我尝试了几种不同的会话/缓存驱动程序组合,唯一似乎可以工作的是 APC 驱动程序。

当我为缓存和会话启用 APC 驱动程序时,不会显示上述致命错误并且一切正常。问题是我给了 Session Lifetime 一个 60(分钟)的值,但它被完全忽略了,这意味着用户在 2 或 3 分钟后注销。 我曾因这个问题去过 Laravel IRC 频道,有人建议调整 APC 内存和 ttl(离开时间)设置,但不幸的是没有运气:(。

以下是我的服务器配置中的一些 APC 设置:

apc.gc_ttl 3600

apc.shm_size 1024M

apc.shm_strings_buffer 32M

如果有人可以提供任何帮助,我非常需要帮助!这是一个实时运行的项目,我需要尽快找到解决方案。

【问题讨论】:

    标签: session driver apc laravel-3


    【解决方案1】:

    我在查看了 plesk 面板后解决了这个问题。

    问题是我选择了“将 PHP 作为 FastCGI 应用程序运行”。

    我切换到“将 PHP 作为 CGI 应用程序运行”,一切正常。

    我不确定问题的确切根源是什么,只是 FastCGI 触发了错误。

    【讨论】:

      【解决方案2】:

      我遇到了完全相同的问题,但找不到解决方案。我一直在兜圈子,试图弄清楚到底出了什么问题。

      我终于看到了这个帖子:

      Fatal error: Cannot override final method

      您需要确保将apc.include_once_override 设置设置为 0。在您的 apc.ini 文件中设置如下:

      apc.include_once_override=0

      这个错误似乎是由包含的类的缓存引起的。

      【讨论】:

        猜你喜欢
        • 2016-11-21
        • 2014-08-10
        • 1970-01-01
        • 2018-08-29
        • 2017-11-08
        • 2011-08-21
        • 2014-08-03
        • 2018-02-15
        • 2018-04-30
        相关资源
        最近更新 更多