在启用opcache之前找不到Laravel PHP5.6类

时间:2015-07-19 15:51:16

标签: php apache laravel opcache

您好我有一台Debian Wheezy VM,我最近升级到PHP 5.6,它附带了OpCache 5.4,并且单独安装了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它们被正确渲染,我可以在我的作曲家自动加载类映射中看到它们被加载,即

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

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

1 个答案:

答案 0 :(得分:0)

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

将以下内容放在laravel应用程序中,仅在laravel中禁用缓存,并且只在调试环境中使用:

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

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