Zend_Cache从命令行保存并从浏览器访问

时间:2012-09-17 08:10:47

标签: php zend-framework

可能我是超级容易但我无法弄明白。我在命令行运行脚本,使用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");

在上述两种情况下,我都有使用php-cli在命令行中运行的app.php文件。

现在,我想使用浏览器http://mytestserve.lan/test_cache.php

访问p_11缓存

我用上面的缓存工厂创建了对象。所有参数与上述相同。但是当我尝试加载缓存p_11时,我没有从命令行设置变量。出了什么问题?

2 个答案:

答案 0 :(得分:3)

当您第一次通过命令行访问缓存文件时,它可能是您作为所有者和某些访问掩码创建的(可能是0600)。

但是当您尝试通过浏览器打开文件时,您将充当完全不同的用户(例如,www或apache)。也许apache用户无法访问该文件。

答案 1 :(得分:3)

我同意@akond可能您应该尝试使用cache_file_umaskcache_file_perm选项进行后端配置:

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