消息'cache_dir'的未捕获异常'Zend_Cache_Exception'必须是目录'

时间:2013-03-20 11:52:23

标签: php zend-framework memcached wamp

我是Zend的新手,我必须处理之前完成的项目以添加一些功能。 以下是application.ini文件中的缓存规范。

cache.frontend.type = Core
cache.frontend.options.lifetime = 7200
cache.frontend.options.automatic_serialization = true
cache.frontend.options.cache_id_prefix = proj_name
cache.frontend.options.cache = true


cache.backend.type = Memcached
cache.backend.options.servers.1.host = 127.0.0.1
cache.backend.options.servers.1.port = 11211
cache.backend.options.servers.1.persistent = true
cache.backend.options.servers.1.weight = 1
cache.backend.options.servers.1.timeout = 5
cache.backend.options.servers.1.retry_interval = 15
logsdb.params.dbname = dataLink

我已经安装了memcache,它运行正常。但是当我想要启动项目时会发生以下错误。

未捕获的异常'Zend_Cache_Exception',消息'cache_dir必须是目录'

我试图在谷歌找到一些答案,但没有一个解决方案有效。请帮我解决一下这个。我在WAMP 2.1上工作

1 个答案:

答案 0 :(得分:0)

不确定,但如果您使用Zend Framework的“新”版本(1.8+?),则必须使用 application.ini中的CacheManager用于设置缓存。

对于memcache,它应该如下所示:

resources.cachemanager.myache.frontend.name = Core
resources.cachemanager.mycache.frontend.options.automatic_serialization = On
resources.cachemanager.mycache.backend.name = Memcached

resources.cachemanager.mycache.backend.options.servers.1.host = 
resources.cachemanager.mycache.backend.options.servers.1.port = 1
resources.cachemanager.mycache.backend.options.servers.2.host = 
resources.cachemanager.mycache.backend.options.servers.2.port = 

控制器中的某个位置获取缓存:

 $cacheManager = $this->getInvokeArg('bootstrap')->getResource('cachemanager');
      $myCache = $cacheManager->getCache('mycache');
代码中的

anyhwhere (我不喜欢这种方式)

$cacheManager = Zend_Controller_Front::getInstance()
                       ->getParam('bootstrap')
                       ->getResource('cachemanager');

$myCache = $cacheManager->getCache('mycache');