0

我有一个 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

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

4

2 回答 2

0

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

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

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

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

于 2013-10-22T12:29:59.403 回答
0

我有完全相同的问题,找不到解决方案。我绕着圈子试图弄清楚到底出了什么问题。

我终于看到了这个帖子:

致命错误:无法覆盖最终方法

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

apc.include_once_override=0

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

于 2014-06-04T03:04:31.260 回答