Zend_Cache在application.ini中默认为cache_dir

时间:2013-09-30 13:45:44

标签: php zend-framework caching

在我的服务器上我有多个虚拟主机,我在它们上面运行了几个基于ZF 1.12的应用程序。缓存数据时(使用Zend_Cache_Backend_File),每个项目都将文件保存在/ tmp中。

问题是存在一些名称和访问权限问题。运行project2我收到此错误:

警告:fopen(/ tmp / zend_cache --- internal-metadatas --- Zend_LocaleC_de_DE_currencynumber _)

这是因为该文件是由project1在单独的虚拟主机上运行的。

所以我想为每个项目的缓存数据定义单独的文件夹,如下所示:

的/ tmp / porject1

的/ tmp /项目2

IMO使用application.ini执行此操作的最佳方式 - 所以我尝试了这个:

resources.cachemanager.database.backend.name = File
resources.cachemanager.database.backend.customBackendNaming = false
resources.cachemanager.database.backend.options.cache_dir = "/tmp/project1"

但它没有用 - 数据仍保存在/ tmp中 - 我做错了什么?

1 个答案:

答案 0 :(得分:1)

在查看Zend / Cache / Backend.php代码时,有一些替代方法可以正确猜测cache_dir:

  • 设置环境变量,如TMPDIR,TEMP或TMP
  • 在php.ini中设置“upload_tmp_dir”
  • 允许访问“/ tmp”或“\ temp”

然后$_SERVER['TEMP'] = realpath('/tmp/project1');将解决您的问题。

请记住将权限更改为缓存文件夹中的777