【问题标题】:Fatal error: Uncaught exception 'Zend_Cache_Exception' with message > 'cache_dir must be a directory'致命错误:未捕获的异常 'Zend_Cache_Exception' 带有消息 > 'cache_dir must be a directory'
【发布时间】:2012-01-23 21:56:32
【问题描述】:

在完成我的代码更新之后。我得到了这个错误。 你能帮我弄清楚这个吗? 我给了所有文件夹的 777 权限。 提前致谢!

致命错误:带有消息的未捕获异常“Zend_Cache_Exception” 'cache_dir 必须是目录' C:\xampp\htdocs\mts\library\Zend\Cache.php:208 堆栈跟踪:#0 C:\xampp\htdocs\mts\library\Zend\Cache\Backend\File.php(154): Zend_Cache::throwException('cache_dir must ...') #1 C:\xampp\htdocs\mts\library\Zend\Cache\Backend\File.php(121): Zend_Cache_Backend_File->setCacheDir('C:\xampp\htdocs...') #2 C:\xampp\htdocs\mts\library\Zend\Cache.php(152): Zend_Cache_Backend_File->__construct(Array) #3 C:\xampp\htdocs\mts\library\Zend\Cache.php(93): Zend_Cache::_makeBackend('File', Array, false, false) #4 C:\xampp\htdocs\mts\application\Bootstrap.php(22): Zend_Cache::factory('Core', 'File', Array, Array) #5 C:\xampp\htdocs\mts\library\Zend\Application\Bootstrap\BootstrapAbstract.php(636): 引导程序->_initCache() #6 C:\xampp\htdocs\mts\library\Zend\Application\Bootstrap\BootstrapAbstract.php(589): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('cache') 7# C:\xampp\htdocs\mts\library\Zend\Application\Bootstrap\Boots in C:\xampp\htdocs\mts\library\Zend\Cache.php 在第 208 行

【问题讨论】:

  • Zend 似乎认为您设置的cache_dir 不是目录,而很可能是文件。 cache_dir你设置了什么值?
  • 'cache_dir' =>'C:\temp\cache 我已经创建了这个文件夹,因为我已经尝试过以这种方式处理问题。
  • 在这种情况下,某些东西没有正确设置或传递,因为在堆栈跟踪中我看到Zend_Cache_Backend_File->setCacheDir('C:\xampp\htdocs...'),所以看起来它试图使用C:\xampp\htdocs 中的某些东西作为cache_dir,而不是@ 987654325@
  • zend 没有路径的典型无用错误消息

标签: apache zend-framework error-handling xampp


【解决方案1】:

在引导中设置缓存

  protected function _initCaching() {
        $frontend = array(
            'lifetime' => 7200,
            'automatic_serialization' => true
        );
        $backend = array(
            'cache_dir' => sys_get_temp_dir(), /**automatically detects**/
        );
        $cache = Zend_Cache::factory('core', 'File', $frontend, $backend);
        Zend_Registry::set('cache', $cache);
    }

【讨论】:

  • 成功了!对于很多人来说,这是一个巨大的问题,但没有人提供答案。谢谢!
  • 我遇到了同样的错误,有人可以告诉我如何设置这个函数,我们将这个函数放在哪个文件中,以及在哪里调用这个函数。提前致谢。
【解决方案2】:

在条件前转到第 154 行的 C:\xampp\htdocs\mts\library\Zend\Cache\Backend\File.php 和 echo $value。它应该给你一个目录地址。确保该目录存在于您的文件系统中。基本上你需要在你的zend配置中正确设置这个路径。

【讨论】:

    【解决方案3】:

    不是权限的问题,ZF找不到缓存目录。检查您在application.ini 中设置的目录是否确实存在。 正如您在Windows 机器上一样,权限应该不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 2013-08-24
      • 2012-04-25
      • 2014-03-17
      • 2012-03-14
      • 2014-07-14
      相关资源
      最近更新 更多