我正在尝试将 cakephp 版本 2.6.0 配置为默认使用 redis 引擎。但不知怎的,我无法让它发挥作用。任何帮助将不胜感激。
到目前为止我尝试过的事情..
配置了app/config文件夹2个文件,core.php和bootstrap.php。 ,根据本博客 configure cake with redis 中提供的指南还有这个博客Another cake-redis config setup
但我不断收到类似的错误。
fatal error :未捕获异常“CacheException”,消息为“缓存引擎 session 未正确配置”。在 C:\wamp\www\project\cakephp\cakephp_2.6.0\lib\Cake\Cache\Cache.php 第 181 行
CacheException:缓存引擎 session 未正确配置。在 C:\wamp\www\project\cakephp\cakephp_2.6.0\lib\Cake\Cache\Cache.php 第 181 行
任何帮助将不胜感激。
最佳答案
我今天在尝试设置 CakePHP 以使用 Redis 作为缓存引擎时遇到了同样的问题。
巧合的是,我也从您链接到的两个博客中阅读了相同的设置说明。
原因是我从 Another cake-redis config setup 复制粘贴了 Configure::write(...)
代码块。博客文章按原样粘贴到文件中,无需先注释掉 core.php 文件中已有的 Configure::write(...)
代码块。
我假设您已经成功设置Redis on Windows并已安装 PHPRedis extension没有任何问题。
我正在使用 Another cake-redis config setup 中的说明在这里。
在您的 app/Config/core.php 文件中,注释掉以下 block :(这是从我的 core.php 中的第 218 行开始的)
Configure::write('Session', array(
'defaults' => 'php'
));
相反,您可以将其放入:(您可以更改值以满足您的特定需求)
Configure::write('Session', array(
'defaults' => 'cache',
'timeout' => 100,
'start' => true,
'checkAgent' => false,
'handler' => array(
'config' => 'session'
)
));
之后,将 $engine 的值更改为 'Redis',因此它变为:
$engine = 'Redis';
然后,放入此代码,我将其放入文件的最后:(同样,您的值可能会有所不同,具体取决于您的设置)
Cache::config ('session', array (
'Engine' => $engine,
'Prefix' => $prefix . 'cake_session_',
'Duration' => $duration
));
就是这样。你完成了!无需更改任何其他内容。
为了确保 Redis 能够与 CakePHP 一起正常工作,我运行了 CakePHP 附带的 RedisEngine 测试套件。您需要有PHPUnit安装此功能即可正常工作。
可以通过 http://your-cakephp-project/test.php 访问
单击“核心”下的“测试”,然后单击“缓存/引擎/RedisEngine” 如果一切顺利,您应该会看到所有测试都通过了。
或者,您可以在命令提示符下使用 redis-cli 来确认 Redis 是否正确存储 key 。
通过输入 redis-cli 登录后,输入 KEYS *
这将为您提供与 CakePHP 设置相关的键列表。
“myapp_cake_core_object_map”键就是一个例子。
希望这有帮助。
关于php - 使用 Redis 引擎配置 Cakephp 2.6.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27896362/