2012-09-17 27 views
1

可能是我這是超級簡單,但我不能'弄明白的方式。我已經腳本中保存緩存命令行中運行使用Zend_Cache是​​Zend_Cache從命令行保存和從瀏覽器訪問

$frontendOptions = array(
      'lifetime' => NULL, 
      'automatic_serialization' => true 
     ); 

$backendOptions = array(
      'cache_dir' => "/home/tmp/cache" 
     ); 

$cache = Zend_Cache::factory('Core', 
        'File', 
        $frontendOptions, 
        $backendOptions); 
$vars = Array("id1" => "12121", "id2" => "2232"); 
$cache->save($vars, "p_11"); 

我可以從命令行訪問保存緩存:

$cache->load("p_11"); 

在這兩種情況下上述,我有一個在命令運行app.php文件使用php-cli的線。

現在,我想用什麼瀏覽器來訪問P_11緩存像http://mytestserve.lan/test_cache.php

我創建緩存工廠對象像上面。所有參數與上面相同。但是,當我嘗試加載緩存p_11時,我沒有從命令行設置變量。什麼地方出了錯?

+0

它可能是有用的,包括你的'$ frontendOptions'和'$ backendOptions'變量。 –

+0

感謝b.b3rn4rd,我將編輯問題 – Elisa

回答

3

當您第一次通過命令行訪問緩存文件時,它有可能以您作爲所有者和某個訪問掩碼(也許是0600)創建。

但是,當您試圖通過瀏覽器打開文件時,您充當完全不同的用戶(例如www或apache)。只是也許apache用戶不能訪問該文件。

3

我@akond同意可能是你應該嘗試與cache_file_umaskcache_file_perm選項後端配置玩:

$backendOptions = array(
    'cache_dir'  => "/home/tmp/cache", 
    'cache_file_umask' => 0775, 
    'cache_file_perm' => 0775); 
+1

請注意,在ZF 1.12中,'cache_file_umask'已被棄用(並且會觸發E_DEPRECATED錯誤),因爲它實際上不能用作umask。參見[ZF-12047](http://framework.zend.com/issues/browse/ZF-12047)。 –

+0

謝謝b.b3rm4rd,「'cache_file_perm'=> 0775」沒有奏效。但我認爲這與操作系統更相關。 – Elisa