您好,我有一个 Debian Wheezy VM,我最近升级到 PHP 5.6,它随 OpCache 从 5.4 单独安装。因为我已经完成了所有我的脚本(顺便说一句,我使用的是 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 抛出消息“Class SettingRepository does not exist”
但是,如果我启用它并在任何时候需要查看新更改时重置 opcache,它们就会正确呈现,并且我可以在我的 Composer 自动加载类映射中看到它们已加载,即
'SettingRepository' => $baseDir 。 '/app/repositories/SettingRepository.php',
知道我做错了什么吗?我感觉它在 apache 中的配置不正确,但我不太确定,有什么建议吗?
最佳答案
保持启用并设置opcache.revalidate_freq=0
并重启apache
或者
将以下内容放在你的 laravel 应用程序的某处,以仅在你的调试环境中禁用 laravel 的缓存:
if (env('APP_DEBUG')) ini_set('opcache.revalidate_freq', '0');
也许您需要将 APP_DEBUG
更改为您的环境。
关于php - 在启用 opcache 之前找不到 Laravel PHP5.6 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31503039/