Laravel 3 APC会话生存期被忽略

时间:2013-10-18 14:19:30

标签: session driver apc laravel-3

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

  
    
      

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

    
  

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

我尝试了几种不同的会话/缓存驱动程序组合,唯一似乎正在运行的是APC驱动程序。

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

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

  
    

apc.gc_ttl 3600

         

apc.shm_size 1024M

         

apc.shm_strings_buffer 32M

  

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

2 个答案:

答案 0 :(得分:0)

在环顾plesk面板后,我解决了这个问题。

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

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

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

答案 1 :(得分:0)

我遇到了完全相同的问题,无法找到解决方案。我绕圈试图弄清楚究竟出了什么问题。

我终于遇到了这个帖子:

Fatal error: Cannot override final method

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

apc.include_once_override=0

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