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");

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

现在,我想使用类似 http://mytestserve.lan/test_cache.php 的浏览器访问p_11缓存

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

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

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

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

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

最新更新