2012-09-17 24 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