可能我是超级容易但我无法弄明白。我在命令行运行脚本,使用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时,我没有从命令行设置变量。出了什么问题?
答案 0 :(得分:3)
当您第一次通过命令行访问缓存文件时,它可能是您作为所有者和某些访问掩码创建的(可能是0600)。
但是当您尝试通过浏览器打开文件时,您将充当完全不同的用户(例如,www或apache)。也许apache用户无法访问该文件。
答案 1 :(得分:3)
我同意@akond可能您应该尝试使用cache_file_umask
和cache_file_perm
选项进行后端配置:
$backendOptions = array(
'cache_dir' => "/home/tmp/cache",
'cache_file_umask' => 0775,
'cache_file_perm' => 0775);