我真的是 Zend 的新手,用了几天。
我收到一条致命错误消息:
致命错误:/home/[REDACTED]/library/Zend/Cache.php 中未捕获的异常 'Zend_Cache_Exception' 和消息 'cache_dir "/home/[REDACTED]/application/../data/tmp/" is not writable': 209 堆栈跟踪: #0 /home/[已编辑]/library/Zend/Cache/Backend/File.php(181): Zend_Cache::throwException('cache_dir "/hom...') #1 /home/[已编辑]/library/Zend/Cache/Backend/File.php(129): Zend_Cache_Backend_File->setCacheDir('/home/user/Proj...') #2 /home/[已编辑]/library/Zend/Cache.php(153): Zend_Cache_Backend_File->__construct(Array) #3 /home/[已编辑]/library/Zend/Cache.php(94): Zend_Cache::_makeBackend('File', Array, false, false) #4 /home/[已编辑]/application/Bootstrap.php(42): Zend_Cache::factory('Core', 'File', Array, Array) #5 /home/[已编辑]/library/Zend/Application/Bootstrap/BootstrapAbstract.php(669): Bootstrap->_initCache() #6 /home/[已编辑]/library/Zend/Applica 在/home/[已编辑]/library/Zend/Cache.php 209 行
根据错误消息,我希望tmp
目录上存在文件夹权限问题。但是,该目录是可写的:
用户@[REDATCED]:~/[REDATCED]/data$ ls -hal 总计 24K drwxrwxr-x 6 用户用户 4,0K Jan 7 18:40 。 drwxr-xr-x 12 用户用户 4,0K 1 月 9 日 12:50 .. drwxrwxr-x 3 用户用户 4,0K Dez 17 11:42 语言环境 drwxrwxr-x 2 用户用户 4,0K Dez 17 11:42 日志 drwxrwxr-x 2 用户用户 4,0K Dez 17 11:42 会话 drwxrwxr-x 2 用户用户 4,0K 1 月 7 日 18:40 tmp
解决方法是注释以下行application/Bootstrap.php
:
受保护的函数_initCache() { $frontendOptions = 数组( 'lifetime' => 7200, // 缓存生命周期为 2 小时 '自动序列化' => 真 ); $backendOptions = 数组( 'cache_dir' => APPLICATION_PATH 。'/../data/tmp/' // 所在目录 ); // 获取 Zend_Cache_Core 对象 $this->cache = Zend_Cache::factory('Core', 'File', $前端选项,$后端选项); Zend_Registry::set('cache', $this->cache); Zend_Date::setOptions(array( '缓存' => $this->缓存 ));
这个解决方法是由一位同事建议的,我不知道我在这里做什么,或者即使这段代码是 Zend 或我们代码库的一部分。我不喜欢丑陋的 hack,或者通过注释掉代码来“修复”东西,或者在不知道我在做什么或背后的原因的情况下做任何事情。
此外,代码似乎在我同事的机器上运行。每次我从存储库中提取他们的代码提交时,我都会得到一个未注释的副本。
我可能可以从存储库或类似的东西中排除该文件(我也是 git 新手),但我真的更喜欢:
- 知道错误的原因
- 了解解决方案