也许我是,这是超级简单的,但我想不出办法。我在命令行中运行了使用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时,我没有从命令行设置变量。哪里出了问题?
发布于 2012-09-17 19:03:26
当您第一次通过命令行访问缓存文件时,有可能是以所有者身份和特定的访问掩码(可能是0600)创建的。
但是当你试图通过浏览器打开文件时,你的行为是完全不同的用户(比如www或apache)。只是可能apache用户无法访问该文件。
发布于 2012-09-18 10:48:19
我同意@akond的观点,也许你应该尝试一下后端配置的cache_file_umask
和cache_file_perm
选项:
$backendOptions = array(
'cache_dir' => "/home/tmp/cache",
'cache_file_umask' => 0775,
'cache_file_perm' => 0775);
https://stackoverflow.com/questions/12455343
复制相似问题