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

标签 php apache laravel opcache

您好,我有一个 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/

相关文章:

php - Telegram Bot API : how to send a photo using PHP?

php - 在带有 .htaccess 的文件名之前给出 param 并提供给 php

带有 ssl 的 Apache 代理不显示来自后端的 basicauth 对话框

查询构建器中的 Laravel 5 多个 select()

php - 在 Laravel 中使用 React Native

php - Postgresql 的 Mysql(Group By) 替代品?

php - 用于匹配空格或字符串结尾的正则表达式

PHP OCI8 为 'IN' 语句绑定(bind)(未知数量)参数

php - 允许 PHP 更改文件和目录的所有权和权限

Mac OS X 中的 PHP : Shows up the PHP code when opening the page