2013-09-30 11 views
0

我的服務器上我有多個虛擬主機Zend_Cache是​​默認的cache_dir,我在上面運行基於ZF 1.12多種應用。當緩存數據(使用Zend_Cache_Backend_File)時,每個項目都將文件保存在/ tmp中。中的application.ini

的問題是有一些名稱和訪問權限的問題。運行項目2我得到這個錯誤:

警告:的fopen(/ tmp目錄/ Zend_Cache是​​---內部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目錄 - 我究竟做錯了什麼?

+0

您試圖清理緩存做的修改過嗎? $ yourCacheManangerObject->清潔(Zend_Cache是​​:: CLEANING_MODE_ALL); –

+0

我會回答的問題:)數據庫中的resources.cachemanager.database.backend.name緩存管理器對象?如果是這樣,我不知道如何訪問它。即使我不使用我自己的Zend_Cache是​​對象(/ Zend_Cache是​​---內部metadatas --- Zend_LocaleC_de_DE_currencynumber_由ZF本身造成的),由我所描述的問題發生。 – Okizb

+0

不,backend.name是「後端緩存」的類型。 CacheMananger對象設置在Zend_Registry上。使用Zend_Registry :: get('Zend_Cache_Manager')來訪問它。 –

回答

1

當了Zend /緩存/ Backend.php代碼看,也有一些備選方案以允許cache_dir的正確猜測:

  • 設置像TMPDIR,TEMP或TMP
  • 集「upload_tmp_dir環境現狀變量「在php.ini
  • 允許訪問 」/ tmp目錄「 或 」\ TEMP「

然後$_SERVER['TEMP'] = realpath('/tmp/project1');將解決你的問題。

記住更改權限爲777的緩存文件夾

相關問題