【问题标题】:Laravel PHP5.6 Class not found until opcache enabled在启用 opcache 之前找不到 Laravel PHP5.6 类
【发布时间】:2015-10-08 18:45:07
【问题描述】:

您好,我有一个 Debian Wheezy VM,我最近升级到 PHP 5.6,它从 5.4 附带 OpCache,并单独安装了 OpCache。因为我已经完成了这一切,所以我的所有脚本(我使用 Laravel 顺便说一句)都被缓存了,这是我不想要的,所以我决定禁用 opcache。

/etc/php5/mods-available/opcache.ini:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=2
opcache.fast_shutdown=1
opcache.enable_cli=0
opcache.enable=0

但是,如果我从 apache php.ini 文件中禁用,我会收到以下错误:

ReflectionException thrown with message "Class SettingRepository does not exist"

但是,如果我启用它并在需要查看新更改正确呈现的任何时候重置 opcache,我可以在我的 composer 自动加载类映射中看到它们已加载,即

'SettingRepository' => $baseDir . '/app/repositories/SettingRepository.php',

任何想法我做错了什么?我感觉它在 apache 中的配置不正确,但我不太确定,有什么建议吗?

【问题讨论】:

    标签: php apache laravel opcache


    【解决方案1】:

    保持启用并设置opcache.revalidate_freq=0并重启apache

    或者

    在您的 laravel 应用程序中的某处放置以下内容,以仅在您的调试环境中禁用 laravel 缓存:

    if (env('APP_DEBUG')) ini_set('opcache.revalidate_freq', '0');
    

    也许您需要将APP_DEBUG 更改为您的环境。

    【讨论】:

      猜你喜欢
      • 2014-12-16
      • 2014-09-06
      • 2017-01-05
      • 2016-06-04
      • 2015-05-08
      • 2019-03-22
      • 2015-12-18
      • 2013-03-25
      • 2015-03-21
      相关资源
      最近更新 更多